Авторизация — Восстановление пароля

Трёхшаговый flow: ввод email → проверка почты → новый пароль.


Шаг 1: Ввод email (/forgot-password)

Что видит пользователь

Заголовок: “Восстановление пароля” Текст: “Введите email, указанный в вашем аккаунте. Мы отправим ссылку для сброса пароля.”

ПолеТип ввода
EmailText input (type=email)

Кнопки: “Отправить ссылку” (primary), “Вернуться к логину” (ссылка)

Действие

API: POST /api/v1/admin/auth/forgot-password

Успех (всегда 200): переход к шагу 2. Ошибка валидации (400): “Введите корректный email” под полем.


Шаг 2: Проверка почты

Что видит пользователь

Заголовок: “Проверьте почту” Текст: “Если аккаунт с email [email] существует, мы отправили письмо со ссылкой для сброса пароля.” Подтекст: “Не получили письмо? Проверьте папку «Спам» или попробуйте ещё раз.”

Кнопки: “Отправить повторно”, “Вернуться к логину”

Не раскрываем существует ли email в системе — одно и то же сообщение для любого email.


Шаг 3: Новый пароль (/reset-password?token=xxx)

Что видит пользователь

Пользователь перешёл по ссылке из email. Ссылка содержит токен.

Заголовок: “Новый пароль”

ПолеТип ввода
Новый парольPassword input
Подтверждение пароляPassword input

Кнопка: “Сохранить пароль”

Действие

API: POST /api/v1/admin/auth/reset-password

Успех: сообщение “Пароль успешно изменён” + кнопка “Войти” → /login

Ошибки:

Код ошибкиЧто показываем
VALIDATION_ERROR (400)“Пароли не совпадают” или “Пароль слишком короткий”
INVALID_RESET_TOKEN (422)“Ссылка недействительна или срок действия истёк. Запросите новую ссылку.” + кнопка → /forgot-password
TOKEN_ALREADY_USED (422)“Эта ссылка уже была использована. Запросите новую.” + кнопка → /forgot-password

Состояния

СостояниеЧто показываем
Шаг 1: начальноеФорма с email
Шаг 1: загрузкаКнопка disabled, спиннер
Шаг 2: ожиданиеСообщение “Проверьте почту”
Шаг 3: начальноеФорма с двумя полями пароля
Шаг 3: загрузкаКнопка disabled, спиннер
Шаг 3: успех”Пароль изменён” + кнопка “Войти”
Шаг 3: токен невалиденОшибка + ссылка на повторный запрос

Переходы

ОткудаКудаТриггер
ЛогинШаг 1Ссылка “Забыли пароль?”
Шаг 1Шаг 2Успешная отправка
Шаг 2Шаг 1”Отправить повторно”
Шаг 2Логин”Вернуться к логину”
EmailШаг 3Клик по ссылке в письме
Шаг 3ЛогинУспешная смена пароля
Шаг 3Шаг 1Токен невалиден → “Запросите новую ссылку”

Ссылки