Аутентификация
Bearer-токены, cookie-сессии, обновление и права доступа
API защищённых операций CMS принимает JWT access-токен в заголовке Authorization: Bearer. Браузерный клиент также использует HttpOnly cookie. Публичные операции не требуют сессии; административные дополнительно проверяют роль и разрешения.
Вход в API Docs выполняется через аккаунт платформы Adwos. Токены установленной CMS предназначены для её домена.
Вход по email
POST /api/v1/auth/login
Content-Type: application/json
{ "email": "user@example.com", "password": "YOUR_PASSWORD" }Успешный ответ содержит:
{
"access_token": "ACCESS_TOKEN",
"refresh_token": "REFRESH_TOKEN",
"expires_at": 1791064800
}expires_at — срок действия access-токена в Unix-секундах, а не длительность сессии. Значение в примере условное. Не задавайте срок токена константой в клиенте.
При включённых CAPTCHA или двухфакторной защите вход потребует дополнительных полей (captcha_token, totp_code). remember_me управляет сохранением браузерной сессии. Состав тела проверяйте по схеме операции своей версии CMS.
Запрос с токеном
GET /api/v1/auth/me
Authorization: Bearer ACCESS_TOKENНе помещайте токены в query-параметры или журнал ошибок. Для cookie-сессии учитывайте режим credentials и политику origin установки.
Обновление
POST /api/v1/auth/refresh
Content-Type: application/json
{ "refresh_token": "REFRESH_TOKEN" }Refresh-токен также может поступить из cookie. Сохраняйте новую пару из ответа: старый refresh-токен не следует повторно использовать. При параллельных запросах выполняйте одно обновление сессии и передавайте результат ожидающим запросам.
При 401 от refresh прекратите повторы и запросите новый вход. 401 обычного API-запроса и 403 из-за отсутствия прав требуют разных действий.
Выход
POST /api/v1/auth/logout
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{ "refresh_token": "REFRESH_TOKEN" }CMS отзывает refresh-токен и очищает cookie-сессию; клиент должен удалить локально сохранённые токены.
Ответы входа
| HTTP | Действие |
|---|---|
400 / 422 | Проверить тело и обязательные поля |
401 | Проверить учётные данные; при 2fa_required запросить второй фактор |
403 | Проверить блокировку пользователя и CAPTCHA |
429 | Прекратить частые повторы и дождаться следующего разрешённого запроса |
SMS/OAuth-вход зависит от настроенных модулей. См. их инструкции.