2009-09-18 11 views
6

Voglio lasciare la stessa durata della sessione utente attraverso: site.com
sub1.site.com
sub2.site.com

Come posso fare questo in Django? Con il pacchetto utente auth predefinito sembra che l'utente debba accedere a tutti e 3 i siti ogni volta con una sessione diversa. Come possono condividere lo stesso cookie di accesso e l'ID di sessione?Quando si utilizzano i sottodomini per un sito Django, come è possibile condividere gli accessi django attraverso sottodomini su localhost?

UPDATE: L'utilizzo del valore SESSION_COOKIE_DOMAIN in settings.py sembra funzionare sui siti di produzione, ma non funziona per me sui server localhost/dev. Come fai a farlo funzionare per i sottodomini localhost? Quando cambio SESSION_COOKIE_DOMAIN al nome del sito Web di produzione o ".localhost" gli account di accesso django smettono completamente di funzionare (non riesco ad accedere mai, nessun cookie viene creato su localhost.)

+0

Credo che questo è un duplicato, vedere questa domanda: [http://stackoverflow.com/questions/1442017/subdomains-and-logins](http://stackoverflow.com/questions/1442017/subdomains-and -logins) –

risposta

12

Penso di aver trovato una soluzione alternativa, ma non è stato possibile utilizzare localhost. Potrei farlo funzionare solo per un dominio di prova ".com" che esegue il mapping su 127.0.0.1.

Nel mio file/etc/hosts (su OSX :)

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

Poi, il mio sviluppo settings.py:

 
    SESSION_COOKIE_DOMAIN=".test.com" 

non ho potuto ottenere questo lavoro con plain "localhost" , sembrava che avessi bisogno della stringa ".com" per farlo funzionare. Così potrei fare il login e avere i cookie di autenticazione sottodominio incrociati usando sub1.test.com:8000 e sub2.test.com:8000 nel mio browser.

Problemi correlati