Аутентификация
Обзор
API использует JWT (JSON Web Token) для аутентификации. Вам нужно получить токен, войдя в систему, а затем включать его в заголовок Authorization для всех защищённых запросов.
Как работает JWT-аутентификация
Следуйте этим шагам для аутентификации и выполнения API-запросов:
Отправьте запрос на вход
Отправьте POST-запрос с email и паролем на эндпоинт входа:
POST /api/v1/auth/login
Content-Type: application/json
{
"email": "[email protected]",
"password": "YourPassword123"
}
Получите JWT-токен
При успешном входе вы получите JWT-токен в ответе:
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
Используйте токен в запросах
Включите токен в заголовок Authorization с префиксом Bearer:
GET /api/v1/user/profile
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...
Регистрация
Регистрация - это двухэтапный процесс. Сначала вы запрашиваете код подтверждения, затем завершаете регистрацию с кодом.
Запрос кода подтверждения
Отправьте имя и 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"
}
Завершение регистрации
Отправьте код подтверждения вместе с паролем и другими данными для создания учетной записи.
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) |
Время жизни токена
JWT-токены имеют ограниченное время жизни. Когда ваш токен истечёт, вы получите ошибку 401 и должны будете войти снова.
Получить текущего пользователя
Чтобы проверить токен и получить информацию о текущем пользователе:
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"
}