Аутентификация

JWT RS256, API ключи и токены обновления

Два типа аутентификации

1. API ключ (для платежей)

Все платёжные эндпоинты (/v1/*) требуют заголовок X-API-Key:

bash
Скачать
curl https://payapi.aibot.kz/v1/status \
  -H "X-API-Key: kp_live_your_api_key"
  • Live ключ (kp_live_...) — реальные платежи
  • Test ключ (kp_test_...) — sandbox, тестовые данные

API ключ хранится как SHA-256 хеш. Вы видите его один раз при создании.

2. JWT Bearer (для управления аккаунтом)

Эндпоинты /me/* и /admin/* требуют JWT токен:

bash
Скачать
curl https://payapi.aibot.kz/me \
  -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIs..."

JWT RS256

  • Access token: срок жизни 15 минут, подписан RSA-2048 приватным ключом
  • Refresh token: срок жизни 7 дней, одноразовый (ротация при обновлении)

Получение токенов

bash
Скачать
curl -X POST https://payapi.aibot.kz/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "[email protected]", "password": "YourPassword"}'

Ответ:

json
Скачать
{
  "access_token": "eyJhbGciOiJSUzI1NiIs...",
  "refresh_token": "a1b2c3d4e5f6...",
  "token_type": "Bearer",
  "expires_in": 900
}

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

Когда access token истекает (HTTP 401), обновите пару:

bash
Скачать
curl -X POST https://payapi.aibot.kz/auth/refresh \
  -H "Content-Type: application/json" \
  -d '{"refresh_token": "a1b2c3d4e5f6..."}'
Каждый refresh token одноразовый. После использования он аннулируется и выдаётся новый.

Безопасность

  • RS256 — асимметричная подпись (приватный ключ подписывает, публичный верифицирует)
  • API ключи хешированы SHA-256 в базе данных
  • Все соединения по HTTPS (TLS 1.3)
  • Rate limiting: 60 запросов/мин для API, 10/мин для auth