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

POST /api/auth/register — Регистрация

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

ПолеЗначение
HTTPPOST /api/auth/register
Auth
Scope токенаread_write
PG-функцииapi.register, api.transfer_guest_projects
Таблицыuser, session, project, space
SRMSRM-085, SRM-143
RP (права)RP-090, RP-094
Файл роутаserver/routes/auth.js
Статусdone

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

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

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

Для человека

Как открыть: нажмите «Войти» в верхнем углу → в карточке входа внизу ссылка «Нет аккаунта? Зарегистрироваться» → форма с полями «Имя», e-mail, пароль и галочкой согласия → кнопка «Зарегистрироваться».

Заводит новый аккаунт и сразу открывает сессию — отдельно входить после регистрации не нужно. Имя можно не вводить (тогда подставится часть e-mail до «@»), а вот почта, пароль и согласие с условиями обязательны.

Что проверяется:

  • почта — по формату; кривой адрес → 400;
  • пароль — не короче 8 символов → иначе 400;
  • галочка «Принимаю условия» — без неё кнопка неактивна, а запрос вернёт 400;
  • имя — до 100 символов.

Если на такую почту уже есть аккаунт — 409 с понятным сообщением.

Перенос гостевых проектов. Если до регистрации вы что-то создавали как гость, эти проекты переедут в ваш личный спейс автоматически (FM-083, RP-094) — ничего вручную переносить не нужно. Если перенос почему-то не удался, регистрация всё равно проходит: аккаунт создаётся, просто гостевые проекты остаются на месте и их можно создать заново.

Кто может. Регистрация — действие гостя (RP-090): вошедшему пользователю она не нужна и в интерфейсе не предлагается.

Для агента

Регистрация — путь человека к аккаунту, агент его не проходит. У агента нет своего аккаунта: он работает под токеном, который владелец-человек заранее выпускает в профиле (Создать токен). Заводить пользователей через API токен не может и не должен.

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

ПолеТипОбяз.Назначение
emailstringдаПочта, проверяется по формату
passwordstringдаНе короче 8 символов
displayNamestringнетИмя; если опущено — берётся часть e-mail до «@»
termsAcceptedbooleanдаСогласие с условиями (должно быть true)

На успех (201) создаёт пользователя, открывает сессию (Set-Cookie) и возвращает профиль:

{ "user": { "id": "a1b2c3d4-...", "email": "user@example.com", "displayName": "Иван" } }

Ошибки: 400 (формат почты, короткий пароль, нет согласия), 409 (почта занята). Перенос гостевых проектов запускается, если передан заголовок X-Guest-Projects со списком id. Markdown-зеркала и аффордансов у метода нет — в агентный набор ресурсов он не входит (server/agent/affordances.js).

Связанные