Dekoder JWT
Zobacz, co znajduje się wewnątrz JSON Web Token.
Pola (claims)
| Pole | Wartość | Znaczenie |
|---|
To narzędzie dekoduje tokeny, ale nigdy nie weryfikuje podpisów. Twój token zostaje w tej karcie przeglądarki.
Działa w przeglądarce. Nic, co wpiszesz, nie jest nigdzie wysyłane.
- Czytelne daty exp i iat
- Status ważności na pierwszy rzut oka
- Token zostaje na twoim urządzeniu
Jak zdekodować JWT
- Wklej token, z przedrostkiem Bearer albo bez niego.
- Odczytaj nagłówek i payload, pokazane jako sformatowany JSON.
- Sprawdź tabelę claims, aby zobaczyć wystawcę, odbiorcę i czas wygaśnięcia.
Trzy części JWT
| Część | Kodowanie | Zawiera |
|---|---|---|
| Nagłówek | JSON w base64url | Algorytm podpisujący (alg) i typ tokenu (typ) |
| Payload | JSON w base64url | Claims, czyli właściwe dane tokenu |
| Podpis | Bajty w base64url | Dowód, że nagłówek i payload nie zostały zmienione |
Najczęstsze algorytmy podpisujące
| Wartość alg | Typ | Uwaga |
|---|---|---|
| HS256 | Symetryczny, wspólny sekret | Częsty w pojedynczej aplikacji, która sama wystawia i sprawdza swoje tokeny |
| RS256 | Asymetryczny, RSA | Częsty, gdy token musi zweryfikować inna strona, na przykład w OAuth |
| ES256 | Asymetryczny, krzywe eliptyczne | Krótsze podpisy niż RSA przy tym samym poziomie bezpieczeństwa |
| none | Brak podpisu | Weryfikator zawsze powinien odrzucić ten algorytm |
Standardowe pola claims według RFC 7519
- exp, nbf i iat to wartości NumericDate: pełne sekundy od epoki Unixa, nigdy milisekundy.
- aud może być pojedynczym ciągiem znaków albo tablicą ciągów, gdy token jest przeznaczony dla więcej niż jednego odbiorcy.
- jti ma być unikalne dla każdego tokenu, co umożliwia zablokowanie jednego konkretnego tokenu.
- Żadne ze standardowych pól claims nie jest wymagane. Token może zawierać wyłącznie własne pola zdefiniowane przez aplikację.
Dekoder JWT: najczęstsze pytania
Jakie są trzy części JWT?
Nagłówek, payload i podpis, każdy zakodowany w base64url i połączony kropkami. Nagłówek podaje algorytm podpisujący, payload zawiera claims, a podpis pozwala serwerowi sprawdzić, kto wystawił token.
Czy to narzędzie weryfikuje podpis?
Nie. Dekoduje nagłówek i payload i nigdy nie sprawdza podpisu. Weryfikuj tokeny na serwerze za pomocą klucza prywatnego albo publicznego, zanim im zaufasz. Wklejony token nigdy nie opuszcza przeglądarki.
Czy payload JWT jest zaszyfrowany?
Nie w zwykłym podpisanym JWT. Jest tylko zakodowany, więc każdy, kto ma token, może go odczytać, dlatego hasła i prywatne dane nigdy nie powinny się w nim znaleźć. Zaszyfrowane tokeny (JWE) mają pięć części i wymagają klucza.
Co oznaczają exp, iat i nbf?
To czasy w sekundach od 1 stycznia 1970 (UTC). exp to moment wygaśnięcia tokenu, iat to moment jego wystawienia, a nbf to czas, przed którym token nie może zostać zaakceptowany.
Dlaczego mój token pokazuje się jako wygasły?
Jego czas exp jest wcześniejszy niż zegar twojego urządzenia. Tokeny dostępowe często są ważne tylko 5 do 60 minut, więc poproś o nowy i sprawdź, czy zegar komputera jest ustawiony poprawnie.
Co definiuje RFC 7519?
Definiuje sam format JWT: trzy części base64url połączone kropkami oraz znaczenie standardowych pól claims, takich jak iss, sub, exp i aud. Nie wymaga konkretnego algorytmu podpisującego.
Czy JWT można unieważnić przed wygaśnięciem?
Nie za pomocą samego tokenu, bo to tylko podpisane dane. Wcześniejsze unieważnienie wymaga wsparcia po stronie serwera, na przykład czarnej listy opartej na polu jti, albo krótkiego czasu ważności połączonego z osobnym tokenem odświeżającym.
Dlaczego exp i iat pokazują się jako duże liczby zamiast dat?
Są zapisane w tokenie jako wartości NumericDate, czyli pełne sekundy od epoki Unixa (1 stycznia 1970 UTC). Ta strona pokazuje surową liczbę obok czytelnej daty dla wygody.