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

PUT /api/profile/password — Сменить пароль

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

ПолеЗначение
HTTPPUT /api/profile/password
Auth
Scope токенаread_write
PG-функцииapi.change_password
Таблицыuser
SRMSRM-122
RP (права)
Файл роутаserver/routes/profile.js
Статусdone

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

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

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

Для человека

Как открыть: кнопка со своим именем в правом верхнем углу → экран «Профиль» → раздел «Смена пароля» → введите текущий пароль, дважды новый и нажмите «Сменить пароль».

Меняет пароль входа. Нужно знать текущий — это защита на случай, если до вашего сеанса кто-то добрался. Новый пароль — минимум 8 символов; короче или с неверным текущим — ошибка 400. После успешной смены под полями появляется «Пароль изменён».

Кто может. Сменить свой пароль может любой вошедший пользователь. Операция всегда касается только вашей учётной записи — сбросить пароль другому человеку отсюда нельзя.

Для агента

Запись — нужен токен со scope read_write (см. Конвенции). Меняется пароль владельца токена; обязательно знать действующий пароль.

Тело запроса (JSON):

ПолеТипОбяз.Назначение
currentstringдаТекущий пароль (проверяется PG-функцией)
newPasswordstringдаНовый пароль, минимум 8 символов

Пример запроса:

Окно терминала
curl -X PUT https://specbuilder.vnimanie.ai/api/profile/password \
-H "Authorization: Bearer tak_..." \
-H "Content-Type: application/json" \
-d '{"current":"oldpass123","newPassword":"newpass4567"}'

Ответ 200:

{ "ok": true }

Пропущенное поле, короткий (< 8) новый пароль или неверный текущий вернут 400. Cookie-клиент всегда получает JSON; Markdown-зеркало отдаётся только токену с Accept: text/markdown (server/agent/negotiate.js). Смена пароля не отзывает уже выпущенные API-токены — они продолжают работать; чтобы перекрыть доступ агенту, токен нужно отозвать отдельно.

Связанные