2009-09-18 12 views
6

Ich möchte über die gleiche Benutzersitzung Spanne lassen: site.com
sub1.site.com
sub2.site.com

Wie kann ich dies in Django tun? Mit dem Standardauthentifizierungs-Benutzerpaket scheint es erforderlich zu sein, dass sich der Benutzer bei jeder anderen Sitzung an allen 3 Standorten anmeldet. Wie können sie denselben Login-Cookie und dieselbe Session-ID teilen?Wie können Sie bei der Verwendung von Subdomains für eine Django-Site django-Logins über Subdomains auf localhost freigeben?

UPDATE: Die Verwendung des SESSION_COOKIE_DOMAIN-Werts in settings.py scheint auf den Produktionsstandorten zu funktionieren, aber auf lokalen Servern/dev-Servern funktioniert es nicht. Wie funktioniert es für localhost-Subdomains? Wenn ich die SESSION_COOKIE_DOMAIN auf den Namen der Produktions-Website oder ".localhost" ändere, funktionieren django auth-Logins nicht mehr (ich kann mich nicht anmelden, auf localhost wird kein Cookie erstellt.)

+0

Ich glaube, das ist ein Duplikat, siehe diese Frage: [http://stackoverflow.com/questions/1442017/subdomains-and-logins](http://stackoverflow.com/questions/1442017/subdomains-and -logins) –

Antwort

12

Ich denke, ich habe eine Lösung gefunden, aber konnte localhost nicht benutzen. Ich konnte es nur für eine Test ".com" -Domäne, die auf 127.0.0.1 abbildet, erhalten.

In meinem/etc/hosts-Datei (auf OSX :)

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

Dann auf meiner Entwicklung settings.py:

 
    SESSION_COOKIE_DOMAIN=".test.com" 

Das konnte ich nicht bekommen die Arbeit mit plain "localhost" schien es, dass ich die ".com" Zeichenfolge brauchte, um es zum Laufen zu bringen. Dann könnte ich mich anmelden und Cross-Subdomain-Authentifizierungs-Cookies mit sub1.test.com:8000 und sub2.test.com:8000 in meinem Browser verwenden.