@700Hp

Как грамотно реализовать восстановление пароля с умирающими ссылками? Верна ли моя логика?

Набросал систему авторизации на JWT токенах.

Задался вопросом о восстановление пароля.
Как я понял, на бэке будет 3 post запроса.
Первый на наличие email в БД и отсылать письмо с секретным кодом на email. Тот же секретный код будет записываться в БД.
(Если хранить не в БД, то где?)
Второй на сравнение кода в БД и ответа с тела запроса. (!)
Третий на обновление пароля в БД.

На фронте - реакт, мобХ.

В одном компоненте обработаю первые 2 запроса.
После второго успешного запроса добавлю новое состояние, назовём isReset = true и переведём неавторизованного пользователя на новый роут.
Доступ к роуту есть до тех пор, пока isReset = true. После смены пароля состояние становится false. И роута для него теперь не существует.

Знающие, подскажите верно ли я спланировал? И как сделать письмо разовым, чтобы нельзя было несколько раз активировать сброс пароля? Использую nodemailer. Спасибо.
  • Вопрос задан
  • 950 просмотров
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
все украдено до нас.
В базе пользователей есть несколько полей

ResetField, IsResetComplite, ResetDate

соответственно в первое заносится какое то значение, которое получается при сбросе, второе контролирует процесс сброса, а третье это время сброса, причем оно контролируется по промежутку времени.

Дополнять можно по желанию, например коды из смс
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы