我有一個在本地運行良好的 django 站點,但是當我嘗試使用 AWS elastic beanstalk 進行部署時,當我嘗試登錄時出現以下錯誤(使用 django allauth)
Forbidden (403) CSRF 驗證失敗。請求中止。
日志狀態:
禁止(未設定 CSRF cookie。):/accounts/login/
我的 settings.py 中間件有:
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"whitenoise.middleware.WhiteNoiseMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.locale.LocaleMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.common.BrokenLinkEmailsMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
該表單有一個 csrf_token:
<form class="login" method="POST" action="{% url 'account_login' %}">
{% csrf_token %}
{{ form|crispy }}
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}
<a class="button secondaryAction" href="{% url 'account_reset_password' %}">{% trans "Forgot Password?" %}</a>
<button class="primaryAction btn btn-primary" type="submit">{% trans "Sign In" %}</button>
</form>
關于如何修復以及為什么它在本地運行正常但在部署時不能正常運行的任何建議表示贊賞
uj5u.com熱心網友回復:
嘗試重新排序中間件。它們按順序執行。因此,任何中間件都會將請求傳遞給下一個,如果某些內容被阻止,它將無法用于下一個中間件,依此類推
uj5u.com熱心網友回復:
嘗試SESSION_COOKIE_SECURE = True設定以保護您的 cookie 當 cookie 不安全時會發生此錯誤也許除錯是 True 確保它的 FalseDEBUG = False
重新排序您的中間件有時它發生在中間件的訂單上
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/348999.html
