Django Password Reset генерирует http-ссылку вместо https

Вопрос задан: 11 месяцев назад Последняя активность: 11 месяцев назад
up 3 down

Я использую встроенный механизм сброса пароля Django. Он отправляет электронное письмо со ссылкой, содержащей токен, который при нажатии можно использовать для сброса пароля. Однако генерируемая ссылка использует шаблон:

{% trans "Please go to the following page and choose a new password:" %}
{% block reset_link %}
{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}
{% endblock %}

Здесь {{ protocol }} возвращает http вместо https. Мой сервер nginx перенаправлял любые http-запросы на базовую ссылку https (домашняя страница).

Следовательно, ссылка для сброса пароля не работает, поскольку созданная ссылка неверна. Он просто переходит на домашнюю страницу через nginx.

Как это исправить?

1 ответ

Возможно, для Вашего проекта будут необходимы бесплатные векторные карты. На нашем сайте представлены карты для всех стран.

Реклама

up 0 down

Вероятно, это проблема X-Forwarded-Protocol в вашей конфигурации nginx.

Вам нужно добавить это внутри вашего блока местоположения:

proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;

Для получения дополнительной информации см .: https://djangodeployment.com/2017/01/24/fix-djangos-https-redirects-nginx/