Автентифікація
Огляд
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"
}