[drupal-devel] login once for multiple sites

Moshe Weitzman weitzman at tejasa.com
Sun Apr 24 11:17:21 UTC 2005

I implemented a system very similar to this in in sso.module. See  
sso.module?rev=1.2&hideattic=0&view=log. It was an experiment of mine,  
and to my knowledge not yet tested on a pod of production sites. It is  
unmaintained, by now.


On Apr 23, 2005, at 11:02 PM, Allie Micka wrote:

> This would be exceedingly useful for us as well.  But you don't want  
> to rely on PHPSESSID because (hopefully) the various sites do not have  
> access to the same session info.  Additionally, a site can't set a  
> cookie for another domain.  You can set a cookie that works on various  
> subdomains ( a.drupal.org, b.drupal.org, etc.) but that's nowhere near  
> flexible enough.
> One way to do this is to query a central site for logged-in status:
> - A user preference on each site includes a "log me into the network"  
> option.  This sets a persistent cookie on the user's machine that  
> represents some kind of universal id for them.
> - Upon successful authentication on a network site, the logged-in  
> status is reported to the central server for that universal id.
> - When a user attempts to authenticate, check for the presence of that  
> cookie.  If it exists, query the central server to see if that id has  
> been logged in somewhere else
> - During subsequent hits and/or login status changes, the central site  
> is notified of the users' status.
> notes:
> This has usability issues, which would have to be identified and  
> addressed.
> It sounds shockingly insecure, but can be made "good enough" through  
> the use of SSL, session cookies, secure hash and shared secrets among  
> the network sites.
> The persistent cookie is a definite problem for multi-user systems.   
> Off the top of my head, I don't know a way around it.
>>> I think it would be a good idea to provide administrators who use one
>>> Drupal installation for multiple sites and share users and sessions  
>>> across
>>> those sites (via $db_prefix) with a new option that would let users  
>>> who
>>> log into one of the sites to be automatically logged into some or  
>>> all of
>>> the other companion sites.
>>> I'm envisioning this working by adjusting user_login() function in
>>> user.module.  Once a login is successful, have the function send out
>>> PHPSESSID cookies for the desired sites, each containing the same  
>>> session
>>> id.
>>> Your thoughts?
>> I've been thinking about implementing this feature. But there is  
>> always
>> this lack of time...
>> Cheers,
>> 	Gerhard
> Allie Micka
> pajunas interactive, inc.
> http://www.pajunas.com/
> scalable web hosting and open source solutions

More information about the drupal-devel mailing list