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

Gonka SaaS использует два типа аутентификации:

  • JWT токены — Для доступа к панели управления и управления API ключами
  • API ключи — Для выполнения запросов к AI моделям
ТипИспользуется дляСрок действия
JWT токенПанель управления, создание/управление API ключами24 часа
API ключЗапросы API к /v1/chat/completionsДо отзыва

Регистрация

Создать новый аккаунт:

curl -X POST https://api.aigonka.ru/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "your@email.com",
    "password": "secure-password"
  }'

Требования:

  • Email должен быть валидного формата
  • Пароль должен быть не менее 6 символов

Ответ:

{
  "user": {
    "id": "usr_abc123",
    "email": "your@email.com",
    "balance": 3.00,
    "role": "user"
  },
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "message": "Регистрация успешна. Добро пожаловать! Вы получили бонус $3."
}

Вход

Получить новый JWT токен:

curl -X POST https://api.aigonka.ru/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "your@email.com",
    "password": "your-password"
  }'

Создать API ключ

curl -X POST https://api.aigonka.ru/api/keys \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -d '{"name": "Продакшен ключ"}'

Использовать API ключ

Включите API ключ в заголовок Authorization:

curl -X POST https://api.aigonka.ru/v1/chat/completions \
  -H "Authorization: Bearer gk-ваш_API_ключ..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    "messages": [{"role": "user", "content": "Привет!"}]
  }'

Лучшие практики безопасности

✅ Нужно

  • Хранить API ключи в переменных окружения
  • Использовать разные ключи для разработки и продакшена
  • Периодически обновлять ключи
  • Немедленно отзывать неиспользуемые ключи
  • Использовать HTTPS для всех API запросов

❌ Нельзя

  • Коммитить API ключи в систему контроля версий
  • Передавать API ключи в клиентском коде
  • Использовать один ключ для нескольких проектов
  • Логировать API ключи в открытом виде

Структура JWT токена

JWT токен состоит из трёх частей:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfYWJjMTIzIiwiZW1haWwiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaWF0IjoxNzA1MzEyMjAwLCJleHAiOjE3MDUzOTg2MDB9.signature
  • Header: Алгоритм и тип токена
  • Payload: Данные пользователя (ID, email, срок действия)
  • Signature: Подпись для проверки подлинности

🔧 Распространённые проблемы

401 Unauthorized

  • Проверьте, что токен/ключ правильный
  • Убедитесь, что токен не истёк (24 часа)
  • Проверьте формат заголовка: Authorization: Bearer <token>

403 Forbidden

  • API ключ отозван или неактивен
  • Недостаточно прав для доступа к ресурсу

Токен истёк

  • Выполните вход заново для получения нового токена
  • Сохраните токен и обновляйте его по истечении 24 часов