Главная › Библиотека › REST API › Аутентификация

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

Обзор

API использует JWT (JSON Web Token) для аутентификации. Вам нужно получить токен, войдя в систему, а затем включать его в заголовок Authorization для всех защищённых запросов.

Как работает JWT-аутентификация

Следуйте этим шагам для аутентификации и выполнения API-запросов:

1

Отправьте запрос на вход

Отправьте POST-запрос с email и паролем на эндпоинт входа:

POST /api/v1/auth/login
Content-Type: application/json

{
    "email": "[email protected]",
    "password": "YourPassword123"
}
2

Получите JWT-токен

При успешном входе вы получите JWT-токен в ответе:

{
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
3

Используйте токен в запросах

Включите токен в заголовок Authorization с префиксом Bearer:

GET /api/v1/user/profile
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...

Регистрация

Регистрация - это двухэтапный процесс. Сначала вы запрашиваете код подтверждения, затем завершаете регистрацию с кодом.

1

Запрос кода подтверждения

Отправьте имя и email. На почту будет отправлен 6-значный код подтверждения.

POST /api/v1/auth/register
Content-Type: application/json

{
    "name": "John Doe",
    "email": "[email protected]",
    "locale": "en"  // optional, from /api/v1/languages
}

Ответ:

{
    "success": true,
    "message": "Verification code sent to email"
}
2

Завершение регистрации

Отправьте код подтверждения вместе с паролем и другими данными для создания учетной записи.

POST /api/v1/auth/register/verify
Content-Type: application/json

{
    "email": "[email protected]",
    "code": "123456",
    "password": "SecurePass123!",
    "country_code": "UA",  // from /api/v1/countries
    "phone": "+380501234567",  // optional
    "locale": "uk"  // optional, from /api/v1/languages
}

Ответ:

{
    "success": true,
    "message": "User registered successfully",
    "user": {
        "id": 1,
        "name": "John Doe",
        "email": "[email protected]"
    }
}

Поля запроса шага 1

Поле Тип Обязательно Описание
name string Да Полное имя (2-255 символов)
email string Да Действительный email-адрес
locale string Нет Язык для email (из /api/languages)

Поля запроса шага 2

Поле Тип Обязательно Описание
email string Да Действительный email-адрес
code string Да 6-значный код подтверждения из email
password string Да Мин. 8 символов, заглавные, строчные, цифра
country_code string Да Код страны (из /api/countries)
phone string Нет Международный формат (+380...)
locale string Нет Предпочитаемый язык (из /api/languages)
Код подтверждения действует: 10 минут

Время жизни токена

JWT-токены имеют ограниченное время жизни. Когда ваш токен истечёт, вы получите ошибку 401 и должны будете войти снова.

Токен истекает через: 1 час

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

Чтобы проверить токен и получить информацию о текущем пользователе:

GET /api/v1/auth/me
Authorization: Bearer YOUR_TOKEN

Ответ:

{
    "id": 1,
    "name": "John Doe",
    "email": "[email protected]",
    "phone": "+380501234567",
    "locale": "en",
    "country": {
        "code": "UA",
        "phone_code": "+380"
    },
    "roles": ["ROLE_USER"],
    "is_active": true,
    "created_at": "2026-01-03T10:00:00+00:00"
}