Аутентификация
Intotes использует аутентификацию на основе JWT с кратковременными access-токенами и долгоживущими refresh-токенами. Токены доставляются как HTTP-only cookies и могут также отправляться через заголовок Authorization.
Жизненный цикл токенов
| Токен | TTL | Назначение |
|---|---|---|
access_token | 20 минут | Авторизует API-запросы. Отправляется как HTTP-only cookie или как Bearer-токен в заголовке Authorization. |
refresh_token | 72 часа | Используется для получения нового access-токена после истечения текущего. Отправляется как HTTP-only cookie. |
Оба токена устанавливаются автоматически как HTTP-only cookies при успешном входе или OAuth-callback.
Отправка аутентифицированных запросов
Включайте access-токен в каждый запрос, требующий аутентификации. Платформа принимает его двумя способами:
- Cookie (автоматически) -- если вы аутентифицировались через браузер, cookies отправляются автоматически.
- Заголовок Authorization (явно):
Authorization: Bearer <access_token>
Обновление токенов
Когда access-токен истекает, вызовите эндпоинт обновления для получения новой пары:
POST /api/v1/auth/refresh
Тело запроса не требуется. Refresh-токен считывается из HTTP-only cookie. При успехе сервер устанавливает новые cookies access_token и refresh_token в ответе.
Если сам refresh-токен истек (после 72 часов неактивности), необходимо войти заново.
Опциональная аутентификация
Некоторые эндпоинты поддер живают опциональную аутентификацию. Они работают как для аутентифицированных, так и для неаутентифицированных пользователей, но возвращают расширенный контент при наличии действительного токена.
Например, эндпоинт списка событий может включать ваш личный статус watchlist и позиции при аутентификации, но возвращать базовые данные события без токена.
Выход из системы
Для завершения сессии и аннулирования токенов:
DELETE /api/v1/auth/logout
Это очищает cookies аутентификации и аннулирует refresh-токен на стороне сервера. После выхода необходимо войти заново для доступа к защищенным эндпоинтам.