2009-09-18 18 views
6

Quiero que el mismo lapso de sesión de usuario a través de: site.com
sub1.site.com
sub2.site.com

¿Cómo puedo hacer esto en Django? Con el paquete de usuario de autenticación predeterminado, parece requerir que el usuario inicie sesión en los 3 sitios cada vez con una sesión diferente. ¿Cómo pueden compartir la misma cookie de inicio de sesión y la id de sesión?Al usar subdominios para un sitio de Django, ¿cómo puede compartir los inicios de sesión de django en los subdominios en el host local?

ACTUALIZACIÓN: El uso del valor de SESSION_COOKIE_DOMAIN en settings.py parece funcionar en sitios de producción, pero no funciona para mí en los servidores locales/dev. ¿Cómo logras que funcione para subdominios de localhost? Cuando cambio el SESSION_COOKIE_DOMAIN al nombre del sitio web de producción o ".localhost", los inicios de sesión de django dejan de funcionar (no puedo iniciar sesión, no se crean cookies en el host local).

+0

Creo que esto es un duplicado, vea esta pregunta: [http://stackoverflow.com/questions/1442017/subdomains-and-logins](http://stackoverflow.com/questions/1442017/subdomains-and -logins) –

Respuesta

12

Creo que tengo una solución alternativa, pero no pudo usar localhost. Solo pude hacerlo funcionar para un dominio de prueba ".com" que se correlaciona con 127.0.0.1.

En mi archivo/etc/hosts (en OSX :)

 
    127.0.0.1 test.com 
    127.0.0.1 sub1.test.com 
    127.0.0.1 sub2.test.com

Entonces en mi desarrollo settings.py:

 
    SESSION_COOKIE_DOMAIN=".test.com" 

no pude conseguir este trabajo con llana "localhost" , parecía que necesitaba la cadena ".com" para que funcionara. Entonces, podría iniciar sesión y tener cookies de autenticación de subdominio cruzadas usando sub1.test.com:8000 y sub2.test.com:8000 en mi navegador.

Cuestiones relacionadas