0
我注意到使用django.contrib.auth.login登錄用戶刪除所有以前設置的自定義和第三方Cookie。這打破了很多東西,比如我的Google Web Optimizer測試,這些測試不能再跟蹤用戶。登錄用戶時防止這種情況的最佳方法是什麼?記住自定義和第三方Cookie發佈Django登錄
看django/contrib/auth/__init__.py
登錄()的代碼不顯示大量的可定製性,罪魁禍首似乎是線request.session.flush()
。我的第一個想法是在調用login()之前簡單地複製request.COOKIES字典,然後在登錄後將其複製回請求,但我不確定要排除哪些Django Cookie。
我無法在會話代碼中找到任何與您的Cookie相吻合的地方。 'flush()'和它調用的三種方法對cookies沒有太大的作用,而中間件只是調用'response.set_cookie()'。你確定它不在你的代碼中的其他地方嗎? –
你確定沖洗總是被稱爲?我記得刷新時只會在會話中存在_auth_id時被調用?出於安全原因,註銷會始終刷新會話(https://code.djangoproject.com/ticket/6941) – Willian