2009-09-18 6 views
6

Je veux laisser la même période de session utilisateur à travers: site.com
sub1.site.com
sub2.site.com

Comment puis-je faire dans Django? Avec le paquet d'authentification auth par défaut, il semble que l'utilisateur doive se connecter aux trois sites à chaque fois avec une session différente. Comment peuvent-ils partager le même cookie de connexion et identifiant de session? MISE À JOUR: L'utilisation de la valeur SESSION_COOKIE_DOMAIN dans settings.py semble fonctionner sur les sites de production, mais cela ne fonctionne pas pour moi sur les serveurs localhost/dev. Comment le faites-vous fonctionner pour les sous-domaines de localhost? Lorsque je change le SESSION_COOKIE_DOMAIN au nom du site de production ou ".localhost" les connexions django auth cessent complètement de fonctionner (je ne parviens jamais à me connecter, aucun cookie n'est créé sur localhost.)Lors de l'utilisation de sous-domaines pour un site Django, comment pouvez-vous partager les connexions django à travers les sous-domaines sur localhost?

+0

Je crois qu'il s'agit d'un doublon, voir cette question: [http://stackoverflow.com/questions/1442017/subdomains-and-logins](http://stackoverflow.com/questions/1442017/subdomains-and -logins) –

Répondre

12

Je pense avoir trouvé une solution de contournement, mais ne pouvait pas utiliser localhost. Je ne pouvais le faire fonctionner que pour un test ".com" domaine qui correspond à 127.0.0.1.

Dans mon/etc/hosts (sur OSX :)

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

Puis sur mon settings.py de développement:

 
    SESSION_COOKIE_DOMAIN=".test.com" 

Je ne pouvais pas travailler avec cette plaine "localhost" , il me semblait que j'avais besoin de la chaîne ".com" pour le faire fonctionner. Alors, je pourrais me connecter et avoir des cookies auth inter sous-domaine en utilisant sub1.test.com:8000 et sub2.test.com:8000 dans mon navigateur.

Questions connexes