Skip to content

Аутентификация

Orbita использует Laravel Sanctum — токены передаются в заголовке Authorization: Bearer.

Локальная аутентификация

http
POST /api/login-local
Content-Type: application/json

{
  "email": "user@example.com",
  "password": "secret"
}

Ответ:

json
{
  "token": "1|plainTextToken...",
  "user": {
    "id": 1,
    "name": "Иван Иванов",
    "email": "user@example.com",
    "roles": ["it_support_manager"]
  },
  "tenant": {
    "slug": "mycompany"
  }
}

Используйте токен во всех последующих запросах:

bash
curl https://app.orbita.example/api/e/it_requests \
  -H "Authorization: Bearer 1|plainTextToken..."

SSO (Authentik)

http
POST /api/login-sso
Content-Type: application/json

{
  "token": "<Authentik Bearer Token>"
}

Токен верифицируется у Authentik. При первом входе пользователь создаётся автоматически; группы из SSO маппируются на орг. единицы по настроенным правилам (/api/sys/auth-mappings).

OAuth (Google / GitHub)

Редирект:

GET /api/auth/google/redirect
GET /api/auth/github/redirect

После авторизации у провайдера браузер возвращается на:

GET /api/auth/google/callback
GET /api/auth/github/callback

Если email провайдера ещё не в системе — создаётся новый аккаунт.

Регистрация (SaaS)

http
POST /api/register
Content-Type: application/json

{
  "name": "Иван Иванов",
  "email": "ivan@example.com",
  "password": "secret123",
  "password_confirmation": "secret123",
  "company_name": "ООО Ромашка",
  "slug": "romashka"
}

Поля company_name и slug нужны только в SaaS-режиме (APP_MODE=saas).

Приглашение пользователя

Администратор приглашает пользователя:

http
POST /api/tenant/invite
Authorization: Bearer <admin-token>
Content-Type: application/json

{
  "email": "newuser@example.com",
  "roles": ["it_support_agent"]
}

Получить детали приглашения (публично):

http
GET /api/join/{token}

Принять приглашение:

http
POST /api/join/{token}
Content-Type: application/json

{
  "name": "Новый Сотрудник",
  "password": "secret123",
  "password_confirmation": "secret123"
}

Выход / инвалидация токена

http
POST /api/logout
Authorization: Bearer <token>

Имперсонация (только администраторы)

http
POST /api/impersonate/{user_id}
Authorization: Bearer <admin-token>

Возвращает новый токен от имени указанного пользователя.

Проверка токена

http
GET /api/user
Authorization: Bearer <token>

Возвращает текущего пользователя с ролями и разрешениями.

Документация Orbita ITSM