2011-08-04 89 views
0

我注意到使用django.contrib.auth.login登錄用戶刪除所有以前設置的自定義和第三方Cookie。這打破了很多東西,比如我的Google Web Optimizer測試,這些測試不能再跟蹤用戶。登錄用戶時防止這種情況的最佳方法是什麼?記住自定義和第三方Cookie發佈Django登錄

django/contrib/auth/__init__.py登錄()的代碼不顯示大量的可定製性,罪魁禍首似乎是線request.session.flush()。我的第一個想法是在調用login()之前簡單地複製request.COOKIES字典,然後在登錄後將其複製回請求,但我不確定要排除哪些Django Cookie。

+0

我無法在會話代碼中找到任何與您的Cookie相吻合的地方。 'flush()'和它調用的三種方法對cookies沒有太大的作用,而中間件只是調用'response.set_cookie()'。你確定它不在你的代碼中的其他地方嗎? –

+0

你確定沖洗總是被稱爲?我記得刷新時只會在會話中存在_auth_id時被調用?出於安全原因,註銷會始終刷新會話(https://code.djangoproject.com/ticket/6941) – Willian

回答

0

你確定你的cookies真的在同一個域名?

Two different domains 
www.mysite.com 
mysite.com 

我從來沒有django螺絲與餅乾,但我有www與非萬維網cookie的問題。