Генерация ссылки для сброса пароля

Как Django версии 1.11 генерирует ссылку для сброса пароля с генератором uid и токена для данного пользователя. Как он проверяет ссылку. После некоторых копаний я обнаружил, что они сохраняют токен в сеансе для проверки послесловия, но в этом случае действительность такой ссылки крайне ненадежна (я думаю, может быть неправильной). Пожалуйста, предложите мне некоторые функции, которые будут делать то же самое, то есть генерировать зашифрованную ссылку электронной почты, которая будет использоваться для сброса электронной почты.


person Deepanshu Gautam    schedule 13.06.2018    source источник


Ответы (1)


Django не сохраняет токен сброса пароля в сеансе. Токен представляет собой соленый HMAC и полностью не имеет состояния.

Взгляните на методы make_token и check_token класса PasswordResetTokenGenerator

person Daniel Hepper    schedule 13.06.2018
comment
Вот что такое код django, я чувствую, что они используют сеансы для проверки. github.com/django/django/blob/master/ джанго/вклад/аутентификация/ - person Deepanshu Gautam; 13.06.2018
comment
Нет, это не так. Вы можете убедиться в этом, добавив точку останова в PasswordResetView.dispatch и пройдя код, или просто открыв ссылку для сброса пароля в сеансе браузера в режиме инкогнито. - person Daniel Hepper; 13.06.2018