Аутентификация
Endpoints регистрации, входа, сессии, приглашений и OIDC.
Кому подходит
- Разработчикам интеграций — получение и проверка Bearer-токена.
- Администраторам SSO — OIDC login flow.
Base URL: https://api.example.com (адрес вашего экземпляра)
POST /api/auth/register
Регистрация организации и первого владельца.
Тело запроса:
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
legalName | string | да | Название организации |
slug | string | нет | Код организации; иначе из email |
email | string | да | Email владельца |
password | string | да | Минимум 8 символов |
planCode | string | нет | monthly, quarterly или enterprise; по умолчанию monthly |
curl -s -X POST https://api.example.com/api/auth/register \
-H "Content-Type: application/json" \
-d '{
"legalName": "Моя Компания ООО",
"slug": "my-company",
"email": "owner@mycompany.example",
"password": "secure-password",
"planCode": "monthly"
}'После регистрации создаётся billing account и первичный счёт на выбранный пакет. Новые LLM-запросы остаются заблокированными до оплаты счёта, кроме Enterprise-сценариев с кредитным лимитом.
Ответ 201:
{
"token": "…",
"email": "owner@mycompany.example"
}Ошибки: 400 — валидация (текст в поле error на русском).
POST /api/auth/login
Локальный вход по email и паролю.
Тело:
| Поле | Тип | Обязательно |
|---|---|---|
email | string | да |
password | string | да |
curl -s -X POST https://api.example.com/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"owner@example.com","password":"owner password"}'Ответ 200: { "token", "email" }
Ошибки: 401 — {"error":"Неверный email или пароль"}
GET /api/auth/session
Текущая сессия по Bearer-токену.
curl -s https://api.example.com/api/auth/session \
-H "Authorization: Bearer <token>"Ответ 200: { "token", "email" }
Ошибки: 401 — {"error":"Сессия не найдена"}
POST /api/invitations/{id}/accept
Принятие приглашения и создание учётной записи.
Тело:
| Поле | Тип | Обязательно |
|---|---|---|
password | string | да |
curl -s -X POST https://api.example.com/api/invitations/inv_abc/accept \
-H "Content-Type: application/json" \
-d '{"password": "new-secure-password"}'Ответ 200: сессия { "token", "email" }
Ошибки: 400 — неверное приглашение или пароль.
Подробнее: Приглашения
GET /api/auth/oidc/{providerId}/login
Начало OIDC-авторизации. Авторизация не требуется.
Query:
| Параметр | Обязательно | Описание |
|---|---|---|
redirect_uri | да | URI возврата после IdP |
curl -s "https://api.example.com/api/auth/oidc/auth_xyz/login?redirect_uri=https://app.example.com/login/callback"Ответ 200:
{
"authorizationUrl": "https://…",
"state": "…"
}Перенаправьте пользователя на authorizationUrl.
GET /api/auth/oidc/callback
Завершение OIDC после редиректа от IdP.
Query: state, code (от провайдера)
curl -s "https://api.example.com/api/auth/oidc/callback?state=…&code=…"Ответ 200: { "token", "email" }
POST /api/auth/oidc/providers/{id}/discover
Проверка OIDC discovery. Требуется Bearer-токен owner/admin организации провайдера.
curl -s -X POST https://api.example.com/api/auth/oidc/providers/auth_xyz/discover \
-H "Authorization: Bearer <token>"Ответ 200:
{
"issuer": "https://sso.example.com",
"authorization_endpoint": "…",
"token_endpoint": "…",
"jwks_uri": "…"
}Заголовок Authorization
Для защищённых endpoints:
Authorization: Bearer <token>