Dekoder i generator JWT
Wklej JSON Web Token, aby odczytać nagłówek i claimy, sprawdzić, kiedy wygasa, i zweryfikować podpis. Twój token nie opuszcza tej strony.
Dodaj ten kalkulator na swoją stronę
Skopiuj kod i wklej go do HTML-a swojej strony. To nic nie kosztuje – prosimy tylko o pozostawienie linku do źródła.
Jak zbudowany jest JWT
JSON Web Token (RFC 7519) to trzy ciągi Base64URL połączone kropkami: header.payload.podpis. Nagłówek (header) mówi, jakim algorytmem token podpisano, payload zawiera claimy (ID użytkownika, role, czas wygaśnięcia), a podpis jest liczony z dwóch pierwszych części.
W HS256 podpis to HMAC tworzony za pomocą wspólnego sekretu, więc ten sam sekret służy do podpisywania i weryfikacji. RS256, PS256 i ES256 podpisują kluczem prywatnym, a weryfikują kluczem publicznym, dzięki czemu wiele usług może sprawdzać tokeny, nie mogąc ich tworzyć.
Jak bezpiecznie sprawdzać token
- Zawsze weryfikuj podpis po stronie serwera i odrzucaj alg "none".
- Ustal z góry oczekiwany algorytm: nie pozwól, by wybierał go nagłówek tokena.
- Sprawdzaj exp, nbf, iss i aud, z minutą lub dwiema tolerancji na rozbieżność zegarów.
- Używaj krótko żyjących tokenów i traktuj je jak hasła: ten dekoder działa offline, ale wiele dekoderów online wysyła token na serwer.
Zarejestrowane claimy JWT (RFC 7519)
| Claim | Nazwa | Znaczenie |
|---|---|---|
iss | Wystawca | Kto utworzył i podpisał token |
sub | Podmiot | Kogo dotyczy token, zwykle ID użytkownika |
aud | Odbiorca | Dla kogo przeznaczony jest token |
exp | Czas wygaśnięcia | Sekundy od 1970, po których token trzeba odrzucić |
nbf | Nie wcześniej niż | Sekundy od 1970, przed którymi token trzeba odrzucić |
iat | Wydany | Kiedy token został utworzony |
jti | ID JWT | Unikalny identyfikator chroniący przed ponownym użyciem tokena |
Najczęstsze pytania
Czy każdy może odczytać JWT?
Tak. Nagłówek i payload są tylko zakodowane w Base64URL, a nie zaszyfrowane, więc każdy, kto ma token, może je odczytać. Nigdy nie umieszczaj w payloadzie JWT haseł ani sekretów.
Czy dekodowanie JWT sprawdza, czy jest ważny?
Nie. Dekodowanie tylko odczytuje zawartość. Dopiero weryfikacja podpisu właściwym sekretem lub kluczem publicznym dowodzi, że token nie został podrobiony ani zmieniony, a serwer musi dodatkowo sprawdzić exp, nbf i aud.
Dlaczego mój token jest wygasły, skoro dopiero go wydano?
exp, iat i nbf to sekundy od 1970 roku, a nie milisekundy. Token zbudowany z Date.now() z JavaScriptu (milisekundy) bez dzielenia przez 1000 wygląda, jakby wygasał za dziesiątki tysięcy lat, a różnice zegarów między serwerami mogą sprawić, że świeży token wygląda na wygasły albo jeszcze nieważny.
Czy to, co wklejam, trafia na serwer?
Nie. To narzędzie działa w całości w twojej przeglądarce, z użyciem JavaScriptu i wbudowanego Web Crypto API. Nic, co wpiszesz, wkleisz lub otworzysz, nie jest wysyłane ani zapisywane.