Головна › Бібліотека › 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"
}