Django url сброса пароля в письме работает только если его скопировать и вставить, а не нажать на него

Когда я запрашиваю сброс пароля с помощью встроенного механизма django, он генерирует URL в письме следующим образом:

https://example/accounts/reset/MTA/atspc3-7c45df8a600243fde3dfb60c44873f15/

В gmail, если я перехожу по URL, текст индентичен, поскольку он генерируется как обычное/текстовое письмо. Если я нажимаю на ссылку в gmail или outlook, то она переходит (возможно, после перенаправления, я не могу сказать, так как это происходит очень быстро):

https://example.com/accounts/reset/MTA/set-password/

И это говорит

Password reset unsuccessful
The password reset link was invalid, possibly because it has already been used. Please request a new password reset.

Однако если я копирую и вставляю URL в браузер, то он работает. Однако никто не копирует и не вставляет URL, все нажимают на ссылку и говорят, что она не работает. Я не понимаю, почему щелчок по ссылке не работает, ведь она правильная? Как вообще можно это отладить?

На тот редкий случай, если у кого-то еще возникнет эта проблема, у меня в файле настроек было:

SESSION_COOKIE_SAMESITE = 'Strict'

Изменив его на разрешение сохранения cookie с внешнего домена (почтового клиента):

SESSION_COOKIE_SAMESITE = 'Lax'  # default value

Обратитесь к https://docs.djangoproject.com/en/stable/ref/settings/#session-cookie-samesite

Вернуться на верх