Типы токенов
HitKey использует несколько типов токенов. Понимание различий важно для корректной интеграции.
OAuth2-токены
Выдаются через OAuth2-flow для доступа к API HitKey от имени пользователя.
Access Token
| Свойство | Значение |
|---|---|
| Время жизни | 1 час |
| Использование | Заголовок Authorization: Bearer <token> |
| Эндпоинт | /oauth/userinfo |
| Получение | /oauth/token (обмен кода или refresh) |
Refresh Token
| Свойство | Значение |
|---|---|
| Скользящее окно | 30 дней (сбрасывается при каждом использовании) |
| Абсолютный лимит | 90 дней (максимальное время жизни) |
| Использование | POST /oauth/token с grant_type=refresh_token |
| Ротация | Нет — тот же refresh-токен остаётся действительным |
INFO
OAuth refresh-токены не ротируются — тот же токен можно использовать повторно до истечения. Обновляется только access-токен.
Это отличается от обновления API Bearer токена (POST /auth/token/refresh), которое ротирует refresh-токен.
Authorization Code
| Свойство | Значение |
|---|---|
| Время жизни | 10 минут |
| Использование | Одноразовый, обменивается на access + refresh токен |
API Bearer токены
Внутренние токены аутентификации HitKey для прямого доступа к API (не OAuth2).
| Свойство | Значение |
|---|---|
| Выдаётся через | POST /auth/login |
| Префикс | hitkey_ |
| Использование | Заголовок Authorization: Bearer <token> |
| Эндпоинты | Все /auth/*, /projects/*, /oauth/clients |
| Обновление | POST /auth/token/refresh — ротирует refresh-токен |
Когда какой использовать
- OAuth2-токены — когда ваше приложение обращается к HitKey от имени пользователя (стандартная партнёрская интеграция)
- API Bearer токены — когда пользователь взаимодействует с HitKey напрямую (личный кабинет)
Как партнёр-разработчик, вы будете работать преимущественно с OAuth2-токенами.
Хранение токенов
| Токен | Где хранить | Примечания |
|---|---|---|
| Access token | Память или безопасное хранилище | Короткоживущий |
| Refresh token | Серверное безопасное хранилище | Никогда не на фронтенде |
| Client secret | Переменная окружения | Никогда в коде |
Безопасность токенов
- Authorization codes хешируются (SHA-256) перед сохранением
- Access- и refresh-токены также хранятся как хеши
- Plaintext-токены возвращаются только один раз при создании
- Обмен токенов требует
client_idиclient_secret