TanodTools
PL

Dekoder JWT

Wklej JSON Web Token, aby odczytać jego nagłówek i ładunek, z czasami wygaśnięcia i wystawienia pokazanymi jako prawdziwe daty.

Działa w całości w Twojej przeglądarce

Tokeny do 1 MB. Tylko dekodowanie: podpis jest pokazywany, ale nie jest sprawdzany.

Jak zdekodować JWT

  1. Wklej token do pola. Początkowe Bearer oraz otaczające spacje lub cudzysłowy są ignorowane.
  2. Odczytaj poniżej nagłówek i ładunek oraz czasy wygaśnięcia, ważności od i wystawienia w swojej strefie czasowej i w UTC.
  3. Skopiuj zdekodowany ładunek lub nagłówek jako sformatowany JSON, jeśli potrzebujesz go gdzie indziej.

Co jest w środku JSON Web Tokenu

Podpisany JWT to trzy fragmenty tekstu Base64url połączone kropkami: nagłówek, ładunek i podpis. Nagłówek i ładunek to po prostu JSON zapisany w Base64url, dlatego każdy może je odczytać. Base64url to kodowanie, a nie szyfrowanie, więc nigdy nie umieszczaj sekretów w ładunku JWT, chyba że token jest zaszyfrowany.

Ładunek zawiera claims. Niektóre nazwy są zarejestrowane: iss (kto wystawił token), sub (kogo dotyczy), aud (dla kogo jest przeznaczony), exp (kiedy wygasa), nbf (nieważny przed), iat (kiedy został wystawiony) i jti (unikalny identyfikator). Usługi dodają własne claims, takie jak role, zakresy uprawnień czy adres e-mail.

Podpis sprawia, że claims są wiarygodne, a jego sprawdzenie wymaga klucza podpisu, który powinni mieć tylko wystawca i usługi akceptujące token. Ten dekoder celowo kończy się na odczycie: pokazuje, co mówi token i kiedy wygasa, czyli zwykle to, czego potrzebujesz przy debugowaniu logowania lub wywołania API.

Wskazówki

Najczęstsze pytania

Czy to sprawdza podpis?

Nie. Ta strona tylko dekoduje token. Każdy może utworzyć token z dowolnym nagłówkiem i ładunkiem, więc pokazana tu zawartość to deklaracje, a nie dowód. Tylko usługa posiadająca klucz podpisu (lub klucz publiczny, dla tokenów RS256 i ES256) może stwierdzić, czy token jest prawdziwy, i musi ona także sprawdzić wygaśnięcie, odbiorcę (audience) i wystawcę (issuer).

Czy bezpiecznie jest wklejać tu token?

Ta strona nigdzie nie wysyła tokenu: jest dekodowany przez kod działający w Twojej przeglądarce i nie jest zapisywany. Mimo to aktywny token dostępu jest hasłem tak długo, jak jest ważny. Unikaj wklejania tokenów produkcyjnych na jakiekolwiek strony, a podczas debugowania wybieraj tokeny wygasłe lub testowe.

Dlaczego nie mogę odczytać niektórych tokenów?

Token z pięcioma częściami zamiast trzech to zaszyfrowany JWT (JWE). Jego nagłówek można odczytać, ale ładunek jest zaszyfrowany i da się go odczytać tylko kluczem odbiorcy, więc to narzędzie pokazuje nagłówek i objaśnia części. Inne błędy, takie jak zła liczba części albo tekst niebędący poprawnym Base64url lub JSON, są zgłaszane wraz z opisem, co poszło nie tak.

Jak wyliczane są czasy?

Claims exp, nbf i iat to NumericDate: liczba sekund od 1 stycznia 1970 UTC. Są pokazywane w strefie czasowej Twojego urządzenia i w UTC oraz porównywane z zegarem urządzenia, by stwierdzić, czy token wygasł. Jeśli zegar jest źle ustawiony, czasy względne też będą błędne. Wartość wyglądająca na milisekundy jest oznaczana, ponieważ to częsty błąd.

Co oznaczają alg, typ i kid?

alg to algorytm podpisu, na przykład HS256 (wspólny sekret), RS256 lub ES256 (para kluczy). typ to zwykle JWT. kid to identyfikator klucza użytego przez wystawcę, który mówi weryfikatorowi, jakim kluczem sprawdzić podpis. Token z alg ustawionym na none jest niepodpisany i nigdy nie powinien być akceptowany w niczym istotnym.