PDA

View Full Version : Sharing user info with other vB sites


bigmattyh
01-11-2002, 09:23 AM
Has anyone thought about this?

I know that I get a little tired of re-entering my user information every time I register at a vB site. The information is generally the same each time -- same user name, same location, etc. etc. etc. I was thinking: maybe there's an efficient way of setting up a very simple network of vB sites so that user information can be shared.

Here's how the basic network could work. First, there would be a central hub-site, that would act as a repository for user info. This central database would be where all the user's basic data would be stored. People start out by registering there, at the hub-site, and entering in their standard user information.

Then, sites using vB would join the network (free of course), becoming a member-site. When you go to register on a member-site, there would be an option to enter your standard nickname and get your info from the vB userinfo hub. If this option is selected, the member-site queries the hub's database, and fills in its database with the hub's information. This way, the member-site's database could include any number of customizations without a hassle -- only the standard fields would be updated.

The update process is a little sketchy in the rough idea-phase of this plan, but there are a number of possible solutions to keep the member-site's databases updated. For example, whenever a user wants to change his information, he could go to the hub-site, and change it there, and then go to each of the member-sites where he's registered and click an "update" button. A more efficient way (but maybe open to some security concerns?) would be to have the hub-site send the member-sites the new db information when the hub-site's info is updated. But that might require access to the member-sites mySQL tables. Another possibility -- send the info from the hub-site to a file in a specific directory on the member-site, and then have a cron-job check for updates periodically.

Just some thoughts. I'd like to do this, if there's a way. Has anyone any good ideas to deal with the update process?

dabean
01-11-2002, 03:43 PM
Originally posted by bigmattyh
Has anyone thought about this?

I know that I get a little tired of re-entering my user information every time I register at a vB site. The information is generally the same each time -- same user name, same location, etc. etc. etc. I was thinking: maybe there's an efficient way of setting up a very simple network of vB sites so that user information can be shared.

Here's how the basic network could work. First, there would be a central hub-site, that would act as a repository for user info. This central database would be where all the user's basic data would be stored. People start out by registering there, at the hub-site, and entering in their standard user information.

Then, sites using vB would join the network (free of course), becoming a member-site. When you go to register on a member-site, there would be an option to enter your standard nickname and get your info from the vB userinfo hub. If this option is selected, the member-site queries the hub's database, and fills in its database with the hub's information. This way, the member-site's database could include any number of customizations without a hassle -- only the standard fields would be updated.



The update process is a little sketchy in the rough idea-phase of this plan, but there are a number of possible solutions to keep the member-site's databases updated. For example, whenever a user wants to change his information, he could go to the hub-site, and change it there, and then go to each of the member-sites where he's registered and click an "update" button.

This is a nice simple method but would annoy the end users like crazy, could you imagine having to go and click update on even just 4 sites. Even with this method some forum of data transfer would be needed which defeats its purpose, also raises privacy concerns (see end section).

A more efficient way (but maybe open to some security concerns?) would be to have the hub-site send the member-sites the new db information when the hub-site's info is updated. But that might require access to the member-sites mySQL tables.


This kind of batch update would work well when the network is small but as it grows in size the overhead of transfering whole records to 100's, 1000's of sites?. Then the possible secuirty concerns are you'd be storing passwords to the database server for every site in the network and have at least insert/update permission maybe even delete (this kind of system would really need a unregistration option) not ideal. Also raises privacy concerns (see end section).



Another possibility -- send the info from the hub-site to a file in a specific directory on the member-site, and then have a cron-job check for updates periodically.


Don't see how this would work in practice any better than direct database inserts, would each update be stored in a seperate file or would you be appending updates into one file? Any how users will complain when they update something and its not propogated to site X when they expect it to be (instantly).



Just some thoughts. I'd like to do this, if there's a way. Has anyone any good ideas to deal with the update process?

Another possible solution is to look at storing "important" data on the hubsite and only on the hubsite, then when user Y visits site X they are redirected to the hubsite to "log in" this would log them into the whole network (MS passport/AOL screenname service style), by sending a encrypted claim ticket to the user whilst also passing a encrypted "key" onto site X via the url. With the ticket the site would know that the user is correctly logged in and when the user wants to make any changes to thier profile you could redirect them back to the correct page on hub passing changes back site X when the user submits the form, but still storing any global data.. in a ideal implementation you would allow users to choose which information is taken for thier global profile and which information is only for that site. Updates to the other sites could be handled, a. when the user visits, b. everytime there is updated data.. (using either direct database query) or ideally using some abstract protocal such as xml-rpc/soap over ssl (allowing support for more than just mysql) limited to just registered IP's of member sites with a secret key exchange to stop spoof attacks.

Even with all this in place your going to run into the problem that any sharing system ends up consuming a lot of bandwidth and resources making it as a totally free service not particually viable (unless you own/run all the network sites) but then direct mysql inserts are not a problem ;).


privacy concerns
User registers at the hubsite then go site X in the network user does not trust site X so does not want to give them any more info than is apsolutely nessary the problem is all of your propsed solutions would automatically share all fields in the user table including the password (storing the password in multiple places is very bad secuirty practice as it only takes one insecure site to compromise the whole network).