Dekoder JWT

Wklej JSON Web Token, aby odczytać jego header i payload, sprawdzić, kiedy wygasa, i zrozumieć każdy claim. Token nigdy nie opuszcza przeglądarki.

Działa w przeglądarceBez rejestracjiNic nie jest wysyłane

Dekodowanie to nie weryfikacja. Każdy może odczytać nagłówek i payload tokena JWT, ponieważ są one jedynie zakodowane w base64url. To narzędzie pokazuje, co token deklaruje; nie dowodzi, że token jest prawdziwy. Zawsze weryfikuj podpis na swoim serwerze.

Nagłówek

Payload


      

Weryfikacja podpisu (opcjonalnie, HS256/HS384/HS512)

Sprawdza podpis HMAC przy użyciu podanego sekretu i Web Crypto API Twojej przeglądarki. Sekret nigdy nie opuszcza tej strony. Tokeny RSA/ECDSA wymagają klucza publicznego wystawcy i nie są tutaj weryfikowane.

Jak używać: Dekoder JWT

  1. Wklej token do pola Zakodowany token. Początkowy prefiks Bearer z nagłówka Authorization jest ignorowany.
  2. Header i payload są dekodowane natychmiast i wyświetlane jako sformatowany JSON.
  3. Przeczytaj tabelę Objaśnienie claimów: exp, iat i nbf są zamieniane na daty z informacją „wygasa za” / „wygasł … temu”.
  4. Sprawdź pasek stanu pod kątem problemów z ważnością oraz ostrzeżenia o ryzykownych ustawieniach, takich jak alg: none.
  5. Opcjonalnie wpisz wspólny sekret, aby lokalnie zweryfikować podpis HS256, HS384 lub HS512.

Co jest w środku JWT?

JSON Web Token (RFC 7519) to trzy ciągi base64url połączone kropkami: header.payload.signature. Header określa algorytm podpisu (alg) i typ tokena. Payload zawiera claimy, np. kim jest użytkownik i kiedy token wygasa. Podpis jest obliczany z dwóch pierwszych części przy użyciu sekretu lub klucza prywatnego.

Dekodowanie to nie weryfikacja

Header i payload są tylko zakodowane, a nie zaszyfrowane, więc każdy, kto ma token, może je odczytać. Dlatego nigdy nie umieszczaj haseł ani sekretów w payloadzie JWT. Dekodowanie mówi, co token deklaruje. Weryfikacja podpisu, zwykle na serwerze API przy użyciu biblioteki takiej jak jose czy PyJWT, dowodzi, kto go wystawił i że nie został zmieniony. Serwer musi też sprawdzić exp, nbf, iss i aud oraz odrzucać nieoczekiwane algorytmy.

Ściąga zarejestrowanych claimów

ClaimZnaczenie
issWystawca: kto utworzył i podpisał token
subPodmiot: zwykle ID użytkownika
audOdbiorca: dla którego API przeznaczony jest token
expCzas wygaśnięcia w sekundach od epoki Unix
nbfNieważny przed tym czasem
iatCzas wystawienia
jtiUnikalny ID tokena, przydatny do list unieważnień

Debugowanie błędów „token expired”

Jeśli API odrzuca token, który wygląda na świeży, porównaj exp i nbf z zegarem serwera. Niewielkie rozbieżności zegarów między maszynami są częste, dlatego większość bibliotek dopuszcza 30–60 sekund tolerancji. Sprawdź też, czy exp jest w sekundach: wartość w milisekundach to częsty błąd, który przesuwa wygaśnięcie o tysiące lat w przyszłość.

Najczęściej zadawane pytania

Czy bezpiecznie jest wkleić tu produkcyjny JWT?
Dekodowanie odbywa się w całości w przeglądarce za pomocą JavaScriptu. Token nie jest wysyłany, logowany ani przechowywany. Jak z każdym poświadczeniem, nadal obchodź się ostrożnie z aktywnymi tokenami i do zrzutów ekranu używaj wygasłych lub testowych.
Czy to narzędzie weryfikuje podpis JWT?
Samo dekodowanie nie. Opcjonalnie możesz zweryfikować tokeny HS256, HS384 i HS512, podając wspólny sekret; HMAC jest obliczany lokalnie przez Web Crypto API. Tokeny RS256 i ES256 trzeba weryfikować kluczem publicznym wystawcy na serwerze.
Dlaczego mój token jest oznaczony jako wygasły?
Claim exp jest w przeszłości względem zegara Twojego komputera. Pobierz nowy token lub odśwież go za pomocą refresh tokena. Jeśli czasy wyglądają źle, sprawdź rozbieżność zegarów lub wartość exp zapisaną w milisekundach.
Czym różnią się JWT, JWS i JWE?
JWT to format claimów. JWS to podpisany JWT z trzema częściami – właśnie taki dekoduje to narzędzie. JWE to zaszyfrowany JWT z pięcioma częściami; jego payloadu nie da się odczytać bez klucza deszyfrującego.
Dlaczego alg „none” jest niebezpieczny?
Niepodpisany token może sfałszować każdy. Serwery muszą odrzucać alg: none i akceptować wyłącznie konkretny, oczekiwany algorytm.

Powiązane narzędzia