Czym jest Dekoder JWT?
JWT (JSON Web Token) to standardowy sposób, w jaki nowoczesne API webowe reprezentują claimy uwierzytelniania i autoryzacji. Jest to zwięzły, samowystarczalny token złożony z trzech części — nagłówka opisującego algorytm podpisywania, payloadu zawierającego rzeczywiste claimy (takie jak ID użytkownika, role i czas wygaśnięcia) oraz podpisu, który pozwala odbierającemu serwerowi zweryfikować, że token nie został zmanipulowany.
Ten dekoder odczytuje nagłówek i payload natychmiast, dzięki czemu możesz debugować problemy z uwierzytelnianiem, sprawdzać, jakie claimy faktycznie wysyła dane API, lub sprawdzać, kiedy token wygasa — wszystko to bez potrzeby backendu, narzędzia CLI ani wklejania wrażliwych tokenów do serwera osób trzecich, ponieważ wszystko działa lokalnie w Twojej przeglądarce.
Kiedy używać tego kalkulatora
- Debugowanie, dlaczego API odrzuca token, poprzez sprawdzenie jego claimów i czasu wygaśnięcia
- Sprawdzanie czasu wygaśnięcia tokenu podczas dochodzenia wsparcia technicznego lub reakcji na incydenty
- Weryfikacja, że dostawca SSO lub OAuth wystawia roszczenia oczekiwane przez Twoją aplikację.
- Nauka struktury JWT do przygotowania na rozmowę kwalifikacyjną lub kurs z bezpieczeństwa
- Sprawdzenie tokenu przechwyconego z narzędzi deweloperskich przeglądarki lub logów serwera, aby zrozumieć jego zawartość
- Porównanie algorytmu nagłówka między tokenami, aby debugować błędy uwierzytelniania spowodowane niezgodnością algorytmu
Kroki:
- Wklej swój JWT do pola wprowadzania lub kliknij "Wczytaj Przykład", aby wypróbować jeden.
- Nagłówek i payload są dekodowane automatycznie w miarę pisania.
- Przejrzyj claimy takie jak iss, sub, exp i iat w czytelnej formie.
- Claimy z znacznikiem czasu (exp, iat, nbf) są automatycznie konwertowane na czytelne daty.
Wzór
JWT = base64Url(header) + "." + base64Url(payload) + "." + base64Url(signature)
Dekodowanie: podziel po ".", zdekoduj base64Url pierwsze dwie części, sparsuj jako JSON.
Weryfikacja (nie wykonywana tutaj): HMACSHA256(base64Url(header) + "." + base64Url(payload), secret) === signature
Przypadki użycia
- Debugowanie, dlaczego API odrzuca token, poprzez sprawdzenie jego claimów
- Sprawdzanie czasu wygaśnięcia tokenu podczas dochodzenia wsparcia technicznego
- Weryfikacja, czy dostawca SSO lub OAuth wystawia oczekiwane claimy
- Nauka struktury JWT do przygotowania na rozmowę kwalifikacyjną lub zajęcia
- Szybkie sprawdzenie tokenu wklejonego z narzędzi deweloperskich przeglądarki lub logów serwera
Kluczowe korzyści
- Dekoduj dowolny JWT natychmiast bez backendu czy narzędzia CLI
- Wszystko działa po stronie klienta — tokeny nigdy nie są wysyłane na serwer
- Automatycznie konwertuje claimy z znacznikiem czasu na czytelne daty
- Darmowe, bez rejestracji, działa z każdym JWT niezależnie od algorytmu
Wskazówki
- Podczas debugowania błędu "unauthorized" zawsze najpierw sprawdź 'exp' — wygasły token to najczęstsza przyczyna
- Porównaj 'alg' w nagłówku z tym, czego oczekuje Twój backend, aby wychwycić błędy niezgodności algorytmu
- Nigdy nie ufaj zdekodowanemu payloadowi jako dowodowi tożsamości bez weryfikacji podpisu po stronie serwera
- Używaj krótkotrwałych tokenów z tokenami odświeżania zamiast długotrwałych JWT, aby ograniczyć ekspozycję w razie wycieku
Częste błędy
- Zakładanie, że zdekodowany JWT jest zweryfikowanym JWT — dekodowanie tylko odczytuje treść, nie potwierdza autentyczności
- Przechowywanie wrażliwych danych (haseł, sekretów) w payloadzie, zapominając, że jest on czytelny dla każdego
- Wklejanie tokenów produkcyjnych do niezaufanych dekoderów online
- Mylenie 'exp' (wygaśnięcie) z 'iat' (wystawiono o) podczas debugowania problemów z czasem życia tokenu
Kluczowe pojęcia
- Claim: Informacja stwierdzana o podmiocie, taka jak ID użytkownika lub rola
- Nagłówek: Pierwszy segment JWT, określający algorytm podpisywania i typ tokenu
- Payload: Drugi segment JWT, zawierający rzeczywiste claimy
- Podpis: Trzeci segment JWT, używany do weryfikacji, że token nie został zmieniony
Powiązane pojęcia
- Generator hash
- Generator UUID
- Koder/dekoder Base64
- Formatator JSON
- Sprawdzacz siły hasła
Przykład
Token zaczynający się od eyJhbGciOiJIUzI1NiJ9 dekoduje się do nagłówka {"alg":"HS256","typ":"JWT"} — co oznacza, że token jest podpisany za pomocą HMAC-SHA256.
Interpretacja wyników
Dekoder rozdziela JWT na dwóch separatorach kropkowych i dekoduje pierwsze dwa segmenty Base64URL. Nagłówek informuje o algorytmie podpisywania (np. HS256 lub RS256) i typie tokenu. Ładunek zawiera właściwe claims — tożsamość użytkownika, uprawnienia i znaczniki czasu.
Claims czasowe (exp, iat, nbf) są automatycznie konwertowane z epoki Uniksa na czytelne daty. Jeśli 'exp' pokazuje datę z przeszłości, token wygasł i większość serwerów go odrzuci. Claim 'sub' (subject) zwykle zawiera identyfikator użytkownika, a 'iss' (issuer) identyfikuje serwer, który utworzył token.
Pamiętaj, że dekodowanie to nie weryfikacja. Sekcja podpisu jest wyświetlana, ale nie można jej zweryfikować bez klucza tajnego lub publicznego. Zdekodowany ładunek ma charakter wyłącznie informacyjny — nigdy nie traktuj go jako dowodu tożsamości bez weryfikacji podpisu po stronie serwera.

