Аутентификация
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 часов