Сброс пароля Django allauth не работает при нажатии на ссылку из письма, но работает в других случаях
Что должно произойти:
Запрос полностью обрабатывается пакетом django-allauth, который должен определить токен, сохранить его в сессии, перенаправить на страницу 'change your password' и, наконец, загрузить токен из сессии.
Проблема:
Функция сброса пароля не работает при нажатии на ссылку из письма (Bad Token), но если я копирую-вставляю ссылку в строку url или нажимаю на href в режиме Inspect Element, то она РАБОТАЕТ. Примечание: Она также работает, если
- Я перезагружаю страницу после появления сообщения "Bad Token"
- Я нажимаю на ссылку из приложения электронной почты на своем мобильном устройстве
Ошибка:
При нажатии на ссылку из письма вы переходите на страницу "изменить пароль", но получаете ошибку "Bad Token", так как в сессии не было найдено ни одного токена.
Формат ссылки, отправляемой пользователю по электронной почте:
<a href="https://subdomain.url.com/ls/click?upn=DEcd6nIgEEAvb4Zt..." rel="noreferrer" safedirecturl="https://www.google.com/url?q=https://sudomain.url.com/...">link text</a>
Для уточнения, и href, и safedirecturl работают нормально, если я копирую-вставляю их в строку url
Заключение:
Пока это мои единственные предположения о причине проблемы:
- Внешний веб-сайт направляет пользователя на эту страницу.
- Работает safedirecturl, что, кажется, противоречит этому.
- Токен не сохраняется в сессии вовремя (состояние гонки?)
- Мне это кажется маловероятным, так как в исходном коде django-allauth я видел, что токен устанавливается в сессии перед финальным редиректом.
Я буду очень признателен за любой вклад, поскольку на данный момент я немного в тупике