Аутентификация API
Intotes использует JWT-токены, передаваемые в виде HTTP-only cookies для аутентификации.
Типы токенов
| Токен | Имя cookie | TTL | Назначение |
|---|---|---|---|
| Access-токен | access_token | 20 минут | Аутентификация API-запросов |
| Refresh-токен | refresh_token | 72 часа | Получение новых access-токенов |
Как это работает
- Вход через
POST /api/v1/auth/sign-in(или регистрацию, OAuth) - Сервер устанавливает
access_tokenиrefresh_tokenкак HTTP-only cookies - Cookies отправляются автоматически с каждым запросом — ручная установка заголовков не требуется
- Когда access-токен истекает, вызовите
POST /api/v1/auth/refreshдля получения нового
Использование Bearer-токена
Для программных клиентов, не поддерживающих cookies, токен можно пе редать вручную:
Authorization: Bearer <access_token>
Уровни аутентификации
Каждый эндпоинт документирует требуемый уровень аутентификации:
| Уровень | Описание |
|---|---|
| None | Публичный эндпоинт, аутентификация не требуется |
| Optional | Работает с аутентификацией и без неё (может возвращать разные данные) |
| Required | Требуется аутентификация |
| Creator | Требуется роль is_creator |
| StatsViewer | Требуется роль is_stats_viewer (административные эндпоинты) |
Процесс обновления токена
# Когда access-токен истекает (ответ 401), обновите его:
curl -X POST https://intotes.com/api/v1/auth/refresh \
--cookie "refresh_token=<your_refresh_token>"
Сервер отвечает новым cookie access_token и информацией о текущем пользователе.