Jak zdekodować token JWT?
- 1.
Wklej token
Wklej cały token (możesz z prefiksem „Bearer ”). Nagłówek i payload zdekodują się natychmiast.
- 2.
Sprawdź ważność
Zobacz daty exp, iat i nbf w czytelnym formacie wraz z informacją, czy token już wygasł.
- 3.
Zweryfikuj podpis
Podaj sekret (HS256/384/512) lub klucz publiczny PEM/JWK (RS, PS, ES), aby sprawdzić, czy token nie został zmodyfikowany.
Budowa tokenu JWT
JWT (JSON Web Token, RFC 7519) to trzy części zakodowane w base64url i rozdzielone kropkami: nagłówek.payload.podpis. Nagłówek zawiera algorytm podpisu (alg) i typ (typ), payload - tzw. claims, czyli dane o użytkowniku i tokenie, a podpis chroni przed modyfikacją. Zawartość nagłówka i payloadu jest tylko zakodowana, a nie zaszyfrowana - każdy może ją odczytać, dlatego nie umieszczaj w tokenie haseł ani danych wrażliwych.
Przykład: token zaczynający się od eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 to nagłówek {"alg":"HS256","typ":"JWT"}.
Standardowe pola: exp, iat, nbf, iss, sub, aud
| Pole | Znaczenie |
|---|---|
iss | wystawca tokenu |
sub | podmiot (zwykle identyfikator użytkownika) |
aud | odbiorca, dla którego token jest przeznaczony |
exp | czas wygaśnięcia (sekundy od 1970-01-01 UTC) |
nbf | nie wcześniej niż - token nieważny przed tą chwilą |
iat | czas wystawienia |
jti | unikalny identyfikator tokenu |
Dekoder przelicza exp, iat i nbf na czytelną datę i czas względem teraz (np. „za 2 godziny”, „3 dni temu”). Przykład: iat = 1516239022 to 18 stycznia 2018, 01:30:22 UTC.
Weryfikacja podpisu: HS256, RS256, ES256
Podpis liczony jest z base64url(nagłówek) + "." + base64url(payload). Algorytmy HS256/384/512 używają wspólnego sekretu (HMAC) - weryfikator musi znać ten sam sekret, którym token podpisano. Algorytmy RS* (RSA PKCS#1 v1.5), PS* (RSA-PSS) i ES* (ECDSA P-256/384/521) używają pary kluczy - do weryfikacji potrzebny jest tylko klucz publiczny w formacie PEM („BEGIN PUBLIC KEY”) lub JWK. Weryfikacja używa interfejsu WebCrypto przeglądarki.
Do przetestowania użyj przykładu: sekret your-256-bit-secret daje poprawny podpis dla tokena z przycisku „Wstaw przykład”, a zmiana jednego znaku w payloadzie unieważnia podpis.
Bezpieczeństwo: nie wklejaj tokenów produkcyjnych
Token JWT działa jak hasło - kto go posiada, może występować w Twoim imieniu do czasu wygaśnięcia. Nigdy nie wklejaj produkcyjnych tokenów ani sekretów do nieznanych stron internetowych. Ten dekoder przetwarza dane wyłącznie w Twojej przeglądarce i niczego nie wysyła na serwer, ale zasadę warto zachować: do testów używaj tokenów deweloperskich, a po przypadkowym ujawnieniu tokenu - unieważnij go i wygeneruj nowy.
Pamiętaj też, że samo zdekodowanie nie dowodzi autentyczności. Serwer musi zawsze zweryfikować podpis, algorytm (odrzucać alg: none), wystawcę (iss), odbiorcę (aud) i czas ważności.
Najczęściej zadawane pytania
Czy bezpiecznie jest wklejać token JWT do dekodera?
+
Czy JWT jest zaszyfrowany?
+
Jak sprawdzić, czy token JWT wygasł?
+
Czym się różni HS256 od RS256?
+
Dlaczego weryfikacja pokazuje „podpis niepoprawny”?
+
Jakie algorytmy podpisu są obsługiwane?
+
Aktualizacja: