Uwierzytelnianie
Przegląd
API używa JWT (JSON Web Token) do uwierzytelniania. Aby uzyskać token, zaloguj się i dodaj go do nagłówka Authorization dla wszystkich chronionych żądań.
Jak działa uwierzytelnianie JWT
Aby uwierzytelnić się i wysłać żądania API, wykonaj następujące kroki:
Wyślij prośbę o zalogowanie
Wpisz swój adres e-mail i hasło w punkcie logowania:
POST /api/v1/auth/login
Content-Type: application/json
{
"email": "[email protected]",
"password": "YourPassword123"
}
Odbierz token JWT
Po pomyślnym zalogowaniu otrzymasz w odpowiedzi token JWT:
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
Użyj tokena w żądaniach
Dodaj token do nagłówka Authorization z prefiksem Bearer:
GET /api/v1/user/profile
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...
Rejestracja
Rejestracja składa się z dwóch etapów. Najpierw prosisz o kod weryfikacyjny, a następnie dokończysz rejestrację za pomocą tego kodu.
Poproś o kod weryfikacyjny
Wyślij imię i nazwisko oraz adres e-mail. Na podany adres e-mail zostanie wysłany 6-cyfrowy kod weryfikacyjny.
POST /api/v1/auth/register
Content-Type: application/json
{
"name": "John Doe",
"email": "[email protected]",
"locale": "en" // optional, from /api/v1/languages
}
Odpowiedź:
{
"success": true,
"message": "Verification code sent to email"
}
Zakończ rejestrację
Wyślij kod weryfikacyjny wraz z hasłem i innymi danymi, aby utworzyć konto.
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
}
Odpowiedź:
{
"success": true,
"message": "User registered successfully",
"user": {
"id": 1,
"name": "John Doe",
"email": "[email protected]"
}
}
Krok 1 – pola żądania
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
name |
string | Tak | Pełne imię i nazwisko (2-255 znaków) |
email |
string | Tak | Prawidłowy adres e-mail |
locale |
string | Nie | Język wiadomości e-mail (z /api/languages) |
Krok 2 – pola żądania
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
email |
string | Tak | Prawidłowy adres e-mail |
code |
string | Tak | 6-cyfrowy kod weryfikacyjny z wiadomości e-mail |
password |
string | Tak | Min. 8 znaków, wielkie litery, małe litery, cyfry |
country_code |
string | Tak | Kod kraju (z /api/countries) |
phone |
string | Nie | Format międzynarodowy (+380...) |
locale |
string | Nie | Preferowany język (z /api/languages) |
Czas życia tokena
Tokeny JWT mają ograniczony czas ważności. Po wygaśnięciu tokena pojawi się błąd 401 i konieczne będzie ponowne zalogowanie.
Pobierz aktualnego użytkownika
Aby zweryfikować swój token i uzyskać informacje o bieżącym użytkowniku:
GET /api/v1/auth/me
Authorization: Bearer YOUR_TOKEN
Odpowiedź:
{
"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"
}