Как грамотно реализовать восстановление пароля с умирающими ссылками? Верна ли моя логика?
Набросал систему авторизации на JWT токенах.
Задался вопросом о восстановление пароля.
Как я понял, на бэке будет 3 post запроса.
Первый на наличие email в БД и отсылать письмо с секретным кодом на email. Тот же секретный код будет записываться в БД.
(Если хранить не в БД, то где?)
Второй на сравнение кода в БД и ответа с тела запроса. (!)
Третий на обновление пароля в БД.
На фронте - реакт, мобХ.
В одном компоненте обработаю первые 2 запроса.
После второго успешного запроса добавлю новое состояние, назовём isReset = true и переведём неавторизованного пользователя на новый роут.
Доступ к роуту есть до тех пор, пока isReset = true. После смены пароля состояние становится false. И роута для него теперь не существует.
Знающие, подскажите верно ли я спланировал? И как сделать письмо разовым, чтобы нельзя было несколько раз активировать сброс пароля? Использую nodemailer. Спасибо.
все украдено до нас.
В базе пользователей есть несколько полей
ResetField, IsResetComplite, ResetDate
соответственно в первое заносится какое то значение, которое получается при сбросе, второе контролирует процесс сброса, а третье это время сброса, причем оно контролируется по промежутку времени.