Ошибка CSRF-токена для приложения django при развертывании на сервере AWS
У меня есть сайт django, который отлично работает локально, но при попытке развернуть его с помощью AWS elastic beanstalk я получаю следующую ошибку при попытке входа (используя django allauth)
Запрещено (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>
Любые советы о том, как исправить и почему он работает нормально локально, но не работает при развертывании, приветствуются
Попробуйте изменить порядок следования промежуточных программ. Они выполняются последовательно. Таким образом, любой промежуточный модуль передает запрос следующему, и если что-то было заблокировано, оно будет недоступно для следующего промежуточного модуля и так далее
попробуйте SESSION_COOKIE_SECURE = True
в настройках защитить куки эта ошибка возникает, когда куки не защищены
возможно, отладка равна True, убедитесь, что она равна False DEBUG = False
измените порядок промежуточного ПО иногда это случается для порядков промежуточного ПО