API аутентификации

Эндпоинты регистрации, входа и управления сессиями.

Регистрация

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

POST/api/auth/register

Запрос

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

Требования

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

Ответ (201)

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

Ответы с ошибками

400 — Некорректный ввод

{
  "error": {
    "message": "Email и пароль обязательны",
    "type": "validation_error"
  }
}

409 — Пользователь существует

{
  "error": {
    "message": "Пользователь с этим email уже существует",
    "type": "user_exists"
  }
}

Вход

Аутентификация и получение JWT токена.

POST/api/auth/login

Запрос

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

Ответ (200)

{
  "user": {
    "id": "usr_abc123",
    "email": "user@example.com",
    "balance": 2.50,
    "role": "user"
  },
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Ответы с ошибками

401 — Неверные учётные данные

{
  "error": {
    "message": "Неверный email или пароль",
    "type": "invalid_credentials"
  }
}

Получить текущего пользователя

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

GET/api/auth/me

Запрос

curl -X GET https://api.aigonka.ru/api/auth/me \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Ответ (200)

{
  "user": {
    "id": "usr_abc123",
    "email": "user@example.com",
    "balance": 2.50,
    "role": "user",
    "createdAt": "2024-01-15T10:00:00Z"
  }
}

JWT токен

Формат

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfYWJjMTIzIiwiZW1haWwiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaWF0IjoxNzA1MzEyMjAwLCJleHAiOjE3MDUzOTg2MDB9.signature

Срок действия

  • Действует: 24 часа
  • Обновление: Войдите снова для получения нового токена

Использование

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

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Ограничения запросов

ЭндпоинтЛимит
/api/auth/register10 запросов/минуту
/api/auth/login10 запросов/минуту