tigtools

Dekoder JWT

Wklej JWT, aby odczytać nagłówek i claims oraz sprawdzić, kiedy token wygasa. Dekodowanie odbywa się w przeglądarce i nie weryfikuje podpisu.

Działa w przeglądarce Bez rejestracji

Dekodowanie to nie weryfikacja: każdy może utworzyć token z dowolną treścią. To narzędzie nie sprawdza podpisu. Działa wyłącznie w przeglądarce, ale mimo to unikaj wklejania tokenów używanych w środowisku produkcyjnym na jakiejkolwiek stronie internetowej.

Jak używać

  1. Skopiuj token z nagłówka Authorization, pliku cookie lub narzędzi deweloperskich przeglądarki. Początkowy ciąg „Bearer ” zostanie usunięty automatycznie.
  2. Wklej token w polu. Nagłówek i payload zostaną wyświetlone jako sformatowany JSON.
  3. Sprawdź wiersz statusu i tabelę claims, aby zobaczyć wystawcę, odbiorców i daty wygaśnięcia w czasie lokalnym.
  4. Skopiuj JSON nagłówka lub payloadu, jeśli chcesz użyć go gdzie indziej.

Jak to działa

JSON Web Token (JWT, RFC 7519) w powszechnie stosowanej, podpisanej postaci (JWS) składa się z trzech części zakodowanych w Base64url i oddzielonych kropkami. Nagłówek określa algorytm użyty do podpisania tokenu, na przykład HS256 (HMAC z SHA-256) lub RS256 (RSA). Ładunek zawiera claims, czyli informacje o użytkowniku i samym tokenie. Podpis pozwala serwerowi sprawdzić, czy nagłówek i ładunek nie zostały zmienione.

Nagłówek i ładunek są tylko zakodowane, a nie zaszyfrowane. Każda osoba mająca token może odczytać jego zawartość — właśnie to robi to narzędzie. Nie umieszczaj poufnych danych w ładunkach JWT.

Dekodowanie nie potwierdza autentyczności tokenu. Bez klucza wystawcy nie da się stwierdzić, czy podpis jest prawidłowy, dlatego wyniku nie wolno używać do podejmowania decyzji, czy ufać tokenowi. Weryfikację należy przeprowadzać na serwerze za pomocą aktualizowanej biblioteki JWT, która sprawdza podpis, algorytm oraz wartości exp, nbf, iss i aud.

Zarejestrowane claims objaśniono w tabeli. exp, nbf i iat to wartości NumericDate: liczba sekund od 1 stycznia 1970 r. UTC. Narzędzie przelicza je na daty w Twojej strefie czasowej i porównuje z zegarem urządzenia, nie uwzględniając niewielkiego marginesu, który serwery często stosują w razie różnic czasu. Jeśli zegar urządzenia jest nieprawidłowo ustawiony, status również będzie nieprawidłowy.

Tokeny składające się z pięciu części to zaszyfrowane JWT (JWE). Ich ładunku nie można zdekodować bez klucza, dlatego narzędzie podaje tylko format.

Przykłady

Dlaczego moje API zwraca błąd 401?

Zdekoduj token dostępu wysyłany przez aplikację. Jeśli w wierszu statusu pojawi się „Wygasł …”, klient musi odświeżyć token. Jeśli aud wskazuje https://api.example.com, a wywołujesz https://api2.example.com, odbiorca się nie zgadza.

Sprawdzanie tokenu ID OpenID Connect

Token ID od dostawcy logowania zawiera iss (dostawcę), sub (stały identyfikator użytkownika), aud (identyfikator klienta), iat i exp, a także claims profilu, takie jak email i name. Dekodowanie pozwala sprawdzić, jakie claims rzeczywiście otrzymuje aplikacja.

Odczytywanie claimu z datą

Ładunek zawiera "exp": 1735689600. Tabela claims pokazuje tę wartość jako 1 stycznia 2025 r., 00:00:00 UTC, przeliczoną na czas lokalny, oraz informację, ile czasu upłynęło od tej chwili lub ile go do niej pozostało.

Często zadawane pytania

Czy to narzędzie weryfikuje podpis JWT?

Nie. Narzędzie tylko dekoduje nagłówek i ładunek. Weryfikacja wymaga tajnego klucza (dla HS256) lub klucza publicznego wystawcy (dla RS256 i ES256) i powinna być przeprowadzana na serwerze za pomocą zaufanej biblioteki.

Czy wklejenie tutaj tokenu jest bezpieczne?

Token jest dekodowany w przeglądarce i nigdzie nie jest wysyłany. Pamiętaj jednak, że ważny token działa jak hasło aż do wygaśnięcia. Dlatego najlepiej używać tokenów wygasłych lub testowych i nigdy nie wklejać tokenów produkcyjnych do narzędzi, którym nie ufasz.

Dlaczego każdy może odczytać payload?

Podpisane JWT są kodowane w base64url, co nie oznacza szyfrowania. Podpis chroni token przed zmianami, ale nie przed odczytaniem. Jeśli treść ma pozostać tajna, użyj zaszyfrowanego JWT (JWE) albo przechowuj dane na serwerze.

Co oznacza „exp” i w jakiej jest jednostce?

exp to czas wygaśnięcia w formacie NumericDate: pełna liczba sekund (nie milisekund) od 1970-01-01 00:00:00 UTC. Token należy odrzucić w tym momencie lub później.

Dlaczego pojawia się komunikat „nieprawidłowy base64url”?

Token został prawdopodobnie ucięty lub zmieniony podczas kopiowania, na przykład przez utratę ostatnich znaków, dodanie cudzysłowów albo kodowanie URL (%2E zamiast kropki). Wklej surowy token dokładnie w takiej postaci, w jakiej został wydany.

Prywatność

Token jest dekodowany w przeglądarce za pomocą JavaScript. Nie jest wysyłany na żaden serwer, przechowywany ani uwzględniany w statystykach. Podpis nie jest weryfikowany, a klucz nie jest wyszukiwany, więc nie jest wysyłane żadne żądanie sieciowe.