Skip to Content
Autoryzacja

Autoryzacja

Każde żądanie do API Senuto musi być uwierzytelnione tokenem Bearer (JWT) w nagłówku Authorization. Ta strona opisuje cały przepływ: od wymagań konta, przez pozyskanie tokenu, po obsługę błędów autoryzacji.

Czego potrzebujesz

  1. Konta Senuto — token jest powiązany z Twoim użytkownikiem i jego planem.
  2. Dostępu do API w planie konta. Bez niego bezpośrednie wywołania API kończą się statusem 403 z pustą treścią. Jeśli Twój plan nie obejmuje dostępu do API, dokupisz go jako dodatek — Dostęp do API.

Pozyskanie tokenu

Token uzyskasz, logując się adresem e‑mail i hasłem konta Senuto:

POST https://api.senuto.com/api/users/token
curl --location --request POST 'https://api.senuto.com/api/users/token' \ --header 'Content-Type: application/json' \ --data-raw '{ "email": "twoj@email.com", "password": "TWOJE_HASŁO" }'

Token wygenerujesz też bez wywoływania tego endpointu: panel Senuto, Ustawienia konta → Integracje, kafelek API.

Nie chcesz używać terminala? Zaloguj się poniżej — token trafi prosto do przeglądarki i zostanie zapamiętany w playgroundzie na stronach endpointów:

Pobierz token tutaj

Zaloguj się danymi konta Senuto — token trafi do pola poniżej i do playgroundu na stronach endpointów. Hasło jest wysyłane wyłącznie do api.senuto.com i nigdzie nie jest zapisywane. Konto musi mieć aktywny dodatek API.

Odpowiedź

W polu data.token dostajesz JWT; pozostałe pola opisują konto:

NameTypeDefault
successtrue
data{ token: string; id: number; email: string; lang: string; currency: string; currency_ratio: number; country_id: number; }

Token jest ważny 31 dni. Nie ma osobnego endpointu odświeżania — po wygaśnięciu (Token expired) po prostu pobierz nowy token tym samym żądaniem. Traktuj token jak hasło: nie umieszczaj go w repozytorium ani w kodzie frontendowym; trzymaj w zmiennej środowiskowej lub sejfie sekretów.

Użycie tokenu

Do każdego żądania dodaj nagłówek Authorization, a przy POST także Content-Type: application/json:

Authorization: Bearer <TWÓJ_TOKEN> Content-Type: application/json

Szybki test poprawności tokenu — endpoint zwracający dane zalogowanego użytkownika:

curl --location 'https://api.senuto.com/api/users/whoami' \ --header 'Authorization: Bearer $YOUR_TOKEN_HERE'
odpowiedź
{ "success": true, "data": { "email": "twoj@email.com" } }

Błędy autoryzacji

Klasycznego 401 to API nie zwraca w żadnym z tych przypadków. Status zależy od tego, na którym etapie odpadło żądanie.

SytuacjaStatusTreść odpowiedzi
Błąd logowania na POST /api/users/token418koperta błędu z data.error.type i message
Zwykły endpoint, token nieważny albo brak nagłówka Authorization302, po przekierowaniu 404{"success": false, "message": ""}
Konto bez aktywnego planu albo bez dodatku API403{"success": false, "message": ""}

418 — błędy logowania

Czytelny komunikat dostajesz wyłącznie z POST /api/users/token. Rozpoznawaj go po data.error.message.

KomunikatKiedy występujeCo zrobić
Invalid username or passwordBłędny e‑mail lub hasłoSprawdź dane logowania
Token expiredWysłano tam token, którego nie da się zweryfikowaćLoguj się e‑mailem i hasłem, nie tokenem
Email isnt confrimed (pisownia oryginalna)Konto z niepotwierdzonym adresem e‑mailPotwierdź e‑mail w panelu Senuto
przykład — błędne dane logowania (HTTP 418)
{ "success": false, "data": { "error": { "type": "unauthorized", "message": "Invalid username or password" } } }

302404 — nieważny token na zwykłym endpoincie

Token po terminie ważności, token uszkodzony i całkowity brak nagłówka Authorization dają ten sam wynik: 302 z nagłówkiem Location na /api/<moduł>/users/login, a pod tym adresem 404 {"success": false, "message": ""}.

Który z tych dwóch statusów zobaczysz, zależy od klienta HTTP. curl -L, requests i axios podążają za przekierowaniem i raportują końcowe 404. Postman z wyłączonym podążaniem za przekierowaniami zatrzyma się na 302. Oba znaczą to samo i jedno i drugie naprawia świeży token.

Jeśli integracja działała miesiąc i nagle „wszystkie endpointy zniknęły”, to wygasł token, a nie zmieniło się API (patrz Błędy → status 404).

403 — konto bez dostępu do API

Token jest ważny, ale konto nie ma aktywnego planu albo dodatku Dostęp do API. Treść odpowiedzi jest pusta ({"success": false, "message": ""}), więc rozpoznajesz ten przypadek po samym statusie. Co dokupić: Dostęp do API.

Co dalej

Ostatnia aktualizacja: