2017-06-13 57 views
0

使用django.contrib.auth.views.login()來處理用戶登錄我在生產環境中看到403個響應。第二次嘗試在初始403(當發生此響應時)之後登錄成功。來自django.contrib.auth.views.login()的間歇403響應

我已經開始記錄所有403次登錄失敗,捕獲顯示csrfmiddlewaretoken(隱藏表單字段值)和csrftoken(cookie值)不匹配的POST有效負載和cookie值。這是間歇性的,發生在許多用戶身上。

下面的裝飾都被應用到登錄功能被用來代理django.contrib.auth.views.login()函數:@ensure_csrf_cookie,@sensitive_post_parameters,@csrf_protect,@never_cache

可能是什麼這個問題的原因是什麼?

+1

也許該頁面已打開很長時間,並且您的Cookie已過期。 – vZ10

回答

2

The CSRF token is rotated after login

如果您在一個選項卡中打開登錄頁面,請使用第二個選項卡登錄,如果您在原始選項卡上提交表單,則會出現CSRF錯誤。

+1

增加了投票數,但我還不知道CSRF令牌輪換是否是這個特定問題的原因。當我更加確信這是或不是原因時,我會通知用戶並告知用戶此處並更新。謝謝! –