Перейти к содержимому

POST /api/auth/password-reset/request — Запрос сброса пароля

Сгенерировано из матриц + кода. Правки вносить в источники (docs/matrices/, server/routes/), не здесь.

ПолеЗначение
HTTPPOST /api/auth/password-reset/request
Auth
Scope токенаread_write
PG-функции
Таблицы
SRM— (вне SRM, документировано по коду)
RP (права)
Файл роутаserver/routes/notifications.js
Статуспо коду (вне SRM)

Аргументы запроса (best-effort из хендлера; путь-параметры опущены):

АргументГдеОбяз.Заметка
emailbodyподтвердить

Коды ответов/ошибок (из хендлера): 400, 500 (+ 200) — уточнить причины вручную

Для человека

Как открыть: задумано как ссылка «Забыл пароль» в карточке входа, ведущая к полю «введите e-mail». Сама ссылка в интерфейс пока не выведена (FM-082 в статусе «todo», RP-093 — «partial»), хотя серверная часть уже работает.

Первый шаг сброса пароля: по введённой почте создаётся одноразовый токен восстановления, действующий 1 час. Дальше им пользуются на втором шаге — подтверждении сброса.

Ответ всегда один и тот же — «ок», даже если такой почты в системе нет. Сделано нарочно: так со стороны не понять, заведён ли аккаунт на этот адрес (защита от перебора почт). Если адрес есть, прежние неиспользованные токены гасятся, остаётся только свежий.

Доставка письма со ссылкой пока вне периметра: токен формируется на сервере, но автоматическая рассылка не подключена — поэтому весь сценарий и помечен как незавершённый.

Кто может. Запросить сброс может любой, кроме администратора платформы (RP-093).

Для агента

Сброс пароля — сценарий восстановления человеческого аккаунта; агент его не использует. Доступ агента к системе держится не на пароле, а на Bearer-токене из профиля (Создать токен); потерять или сбросить «пароль токена» нечего. Если токен скомпрометирован — владелец просто отзывает его и выпускает новый.

Метод задокументирован для полноты. Тело запроса:

ПолеТипОбяз.Назначение
emailstringдаПочта аккаунта

Ответ всегда 200 { "ok": true }, независимо от того, существует ли почта (защита от перебора). Сам токен восстановления в ответ попадает только при NODE_ENV=development — в продакшене он не отдаётся и не логируется. Ошибка 400 — если поле email не передано. Markdown-зеркала и аффордансов у метода нет (server/agent/affordances.js).

Связанные