POST /api/auth/register — Регистрация
Как открыть: нажмите «Войти» в верхнем углу → в карточке входа внизу ссылка «Нет аккаунта? Зарегистрироваться» → форма с полями «Имя», e-mail, пароль и галочкой согласия → кнопка «Зарегистрироваться».
Заводит новый аккаунт и сразу открывает сессию — отдельно входить после регистрации не нужно. Имя можно не вводить (тогда подставится часть e-mail до «@»), а вот почта, пароль и согласие с условиями обязательны.
Что проверяется:
- почта — по формату; кривой адрес →
400; - пароль — не короче 8 символов → иначе
400; - галочка согласия — без неё кнопка неактивна, а запрос вернёт
400; - имя — до 100 символов.
Если на такую почту уже есть аккаунт — 409 с понятным сообщением.
Согласие обязательно (FM-209). Галочка на форме звучит так: «Я принимаю Пользовательское соглашение и подтверждаю, что ознакомлен(а) с Политикой обработки персональных данных» — оба документа открываются по ссылкам рядом (см. Правовые документы). Без галочки зарегистрироваться нельзя.
Факт согласия сохраняется в legal_acceptance — в той же транзакции, что и создание аккаунта: либо есть и пользователь, и запись о согласии, либо нет ни того, ни другого. В записи фиксируются время, редакции обоих документов на тот момент, адрес и браузер, с которых пришёл запрос. Записи только добавляются — их не правят и не удаляют; исключение одно: при удалении аккаунта согласие уходит вместе с ним. Отдельная от профиля запись нужна потому, что доказывать наличие согласия обязан оператор.
Перенос гостевых проектов. Если до регистрации вы что-то создавали как гость, эти проекты переедут в ваш личный спейс автоматически (FM-083, RP-094) — ничего вручную переносить не нужно. Если перенос почему-то не удался, регистрация всё равно проходит: аккаунт создаётся, просто гостевые проекты остаются на месте и их можно создать заново.
Кто может. Регистрация — действие гостя (RP-090): вошедшему пользователю она не нужна и в интерфейсе не предлагается.
Связанные
Машинная сводка (HTTP, таблицы, связанные требования)
| Поле | Значение |
|---|---|
| HTTP | POST /api/auth/register |
| Auth | — |
| Scope токена | read_write |
| PG-функции | api.register, api.transfer_guest_projects |
| Таблицы | user, session, legal_acceptance, project, space |
| SRM | SRM-085, SRM-143 |
| RP (права) | RP-090, RP-094 |
| Файл роута | server/routes/auth.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
displayName | body | подтвердить | |
email | body | подтвердить | |
password | body | подтвердить | |
termsAccepted | body | подтвердить |
Коды ответов/ошибок (из хендлера): 201, 400, 409, 500 (+ 200) — уточнить причины вручную