GET /api/invites/by-token/:token — Приглашение по ссылке
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | GET /api/invites/by-token/:token |
| Auth | optionalAuth — гость + авторизованный |
| Scope токена | read |
| PG-функции | api.get_invite_by_token |
| Таблицы | invite |
| SRM | SRM-066, SRM-068 |
| RP (права) | RP-055 |
| Файл роута | server/routes/invites.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
аргументов не обнаружено (подтвердить вручную по server/routes/invites.js)
Коды ответов/ошибок (из хендлера): 400, 404, 410 (+ 200) — уточнить причины вручную
Для человека
Как открыть: перейдите по ссылке-приглашению из письма (вида …/invite/<токен>). Откроется экран принятия приглашения — этот метод вызывается на нём автоматически, чтобы показать, в какую организацию вас зовут.
Возвращает карточку приглашения по его токену из ссылки: название организации, предлагаемую роль и срок действия. Запрос анонимный — карточку видно ещё до входа, чтобы человек понимал, на что соглашается; принять приглашение можно только после входа или регистрации.
Метод проверяет состояние приглашения и честно сообщает о проблемах:
- приглашения с таким токеном нет —
404; - приглашение уже использовано (принято или отклонено) —
410с подсказкой статуса; - срок действия истёк —
410, на экране «ссылка недействительна» (FM-065).
По умолчанию org-приглашение зовёт на роль участника-сотрудника (member). Принять его может любой человек, открывший ссылку (FM-064): авторизованный сразу попадает в организацию, гость проходит через регистрацию.
Для агента
Чтение. В браузере роут анонимный (optionalAuth) — токен не требуется. Путь-параметр :token — секрет из ссылки-приглашения (строка из латинских букв и цифр).
Важно: агентному токену этот метод недоступен. Путь /api/invites/... не входит в read-allowlist agent-gate (server/auth/agentGate.js), а gate закрыт по умолчанию. Поэтому запрос с Authorization: Bearer tak_... вернёт 403 («Forbidden for token»), даже на scope read. Открыть приглашение по токену может только браузер-клиент (cookie-сессия) или анонимный запрос — что и делает экран принятия.
Пример запроса (анонимно, из браузера):
curl https://specbuilder.vnimanie.ai/api/invites/by-token/Xa9kQ2...Ответ 200:
{ "id": "c3d4e5f6-...", "orgName": "Студия проектирования", "orgSlug": "studio", "role": "member", "expiresAt": "2026-07-01T00:00:00.000Z"}Ответы об ошибках: 404 — приглашения нет; 410 — уже использовано ({ "error": "...", "status": "accepted" }) либо истекло; 400 — прочие сбои. Markdown-зеркала и ETag у метода нет, отдаётся чистый JSON. Дальше — принять или отклонить приглашение по его id; обе эти операции уже доступны токену со scope read_write.
Связанные
- Экраны: Принятие инвайта
- Конвенции · Роли · Ошибки · Глоссарий