Skip to content
API находится в стадии beta и может измениться без предварительного уведомления.

Быстрый старт

Интегрируйте HitKey OAuth2 в ваше приложение за 5 минут.

Предварительные требования

1. Создайте OAuth-клиент

Вам нужны client_id, client_secret и зарегистрированный redirect_uri.

Через API:

bash
curl -X POST https://api.hitkey.io/oauth/clients \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Моё приложение",
    "redirect_uri": "https://myapp.com/callback"
  }'

WARNING

Сохраните client_secret в безопасном месте — он показывается только один раз.

2. Перенаправьте на HitKey

Отправьте пользователей на страницу авторизации HitKey:

https://hitkey.io/?client_id=YOUR_CLIENT_ID&redirect_uri=https://myapp.com/callback&response_type=code&state=RANDOM_STATE&scope=openid+profile+email
ПараметрОбязателенОписание
client_idДаID вашего OAuth-клиента
redirect_uriДаДолжен совпадать с зарегистрированным
response_typeДаВсегда code
stateДаСлучайная строка для защиты от CSRF
scopeНетЧерез пробел: openid, profile, email, project:read

Пользователь входит (или регистрируется) и авторизует ваше приложение. HitKey редиректит обратно:

https://myapp.com/callback?code=AUTH_CODE&state=RANDOM_STATE

3. Обменяйте код на токены

bash
curl -X POST https://api.hitkey.io/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "authorization_code",
    "code": "AUTH_CODE",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET",
    "redirect_uri": "https://myapp.com/callback"
  }'

Ответ:

json
{
  "access_token": "eyJhbGciOi...",
  "refresh_token": "dGhpcyBpcyBh...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "openid profile email"
}

4. Получите информацию о пользователе

bash
curl https://api.hitkey.io/oauth/userinfo \
  -H "Authorization: Bearer ACCESS_TOKEN"

Ответ:

json
{
  "sub": "550e8400-e29b-41d4-a716-446655440000",
  "email": "user@example.com",
  "email_verified": true,
  "name": "John Doe",
  "given_name": "John",
  "family_name": "Doe",
  "display_name": "John Doe"
}

Ключевой принцип

Всегда используйте sub (UUID) как стабильный идентификатор пользователя в вашей БД — никогда не email. Подробнее: Идентичность HitKey.

5. Обновление токенов

Access-токены истекают через 1 час. Используйте refresh-токен для получения новой пары:

bash
curl -X POST https://api.hitkey.io/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "refresh_token",
    "refresh_token": "dGhpcyBpcyBh...",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET"
  }'

Следующие шаги

HitKey Service License.