Есть небольшой сервер на NodeJS с авторизацией по мылу + верификация мыла по ссылке (при этом, бэкенд и фронтэнд клиент польностью разделены, на разных доменах). Хочу сделать Сброс Пароля. Набросал следующую схему, посмотрите пожалуйста и дайте ваши замечания:
1. ввод имейла на клиенте, отправка на сервер
2. проверка существует ли имейл
3. если не существует - возврат ошибки на клиент
4. если существует - отправка имейла с токеном в урл и отправка сообщения об успешном отправлении имейла и просьбой проверить имейл на клиент
5. переход по ссылке из имейла, верификация токена
6. если токен с ошибкой - возврат на клиент ошибку
7. если токен без ошибки - редирект на клиент с возможностью ввода нового пароля
8. отправка нового пароля на сервер, сохранение в БД хэша
там же написано даже что "норм" - поясню почему, во первых практически все так и делают, было бы очень плохо не делали бы, во вторых архитектура должна соответствовать цели, просто хорошей архитектуры не бывает.
h1l4nd0r, понял. Я честно говоря просто запутался конкретно на каком этапе менять пароль в БД. И получается, старые токены полученные еще со старым паролем будут активны, их никак не обнулить. И что делать с рефреш токеном? Это ведь другой токен, не тот который для сброса пароля. Получается, надо не тлько старый пароль удалять, но и токены.
Сергей, я так написал потому что нет разницы что слать незашифрованные письма что незашифрованные http данные на экран, и то и другое сравнимые дыры в безопасности, а реализовать сложнее/дольше с подтверждением