Co pokazuje dekoder JWT
JSON Web Token (JWT) to zwarty format tokena powszechnie używany w uwierzytelnianiu, autoryzacji, sesjach API i przepływach tożsamości. JWT zazwyczaj składa się z trzech części oddzielonych kropkami: nagłówka, ładunku (payload) i podpisu. Nagłówek i ładunek są zakodowanymi w base64url obiektami JSON, co oznacza, że można je odszyfrować i odczytać bez klucza tajnego.
Ten dekoder JWT koncentruje się na inspekcji. Formatuje nagłówek i ładunek, wyodrębnia typowe roszczenia (claims), pokazuje surowe segmenty i wyjaśnia roszczenia oparte na czasie, takie jak iat, nbf, i exp. To przydatne przy debugowaniu procesów logowania, wywołań API, środowisk testowych, integracji OAuth lub problemów z czasem życia tokenu.
- Odczytaj algorytm tokena i typ z nagłówka.
- Zbadaj issuer, subject, audience i niestandardowe roszczenia w ładunku.
- Konwertuj roszczenia NumericDate na czytelne daty.
- Skopiuj zdekodowany nagłówek, zdekodowany ładunek lub surowe segmenty tokenu.
Dekodowanie to nie weryfikacja
Dekodowanie JWT mówi, co jest w tokenie. Nie dowodzi to jednak, kto go utworzył, czy ładunek został zmodyfikowany, czy podpis się zgadza ani czy twoja aplikacja powinna go zaakceptować. Weryfikacja podpisu wymaga poprawnego sekretu, klucza publicznego lub konfiguracji JWKS i musi odpowiadać algorytmowi oczekiwanemu przez aplikację.
Część podpisu różni się od nagłówka i ładunku. Jest to wartość kryptograficzna obejmująca zakodowany nagłówek i ładunek, a nie kolejny obiekt JSON do dekodowania. Ta strona pokazuje podpis w wyjściu surowych segmentów, gdy istnieje, ale nie prosi o klucze podpisujące ani nie weryfikuje wartości.
Traktuj tę stronę jako narzędzie inspekcyjne, nie jako autorytet. Zdekodowany token nadal może być fałszywy, wygasły, niepodpisany, podpisany niespodziewanym kluczem lub odrzucony przez usługę, która go wydała.
Typowe roszczenia JWT
| Claim | Meaning | Typowe zastosowanie |
|---|---|---|
iss | Issuer | Usługodawca lub dostawca tożsamości, który wystawił token. |
sub | Subject | Użytkownik, konto, klient lub podmiot, którego dotyczy token. |
aud | Audience | API, aplikacja lub usługa, która powinna otrzymać token. |
iat | Wystawiono (issued at) | Kiedy token został utworzony. |
nbf | Nie przed | Token nie powinien być akceptowany przed tym czasem. |
exp | Wygasa (expires at) | Token nie powinien być akceptowany po tym czasie. |
Bezpieczne nawyki przy debugowaniu
- Używaj w miarę możliwości tokenów testowych zamiast tokenów użytkowników produkcyjnych.
- Nie wklejaj sekretów podpisywania, kluczy prywatnych ani poświadczeń API do dekodera.
- Sprawdź, czy algorytm jest zgodny z oczekiwaniami twojej aplikacji.
- Compare
issandaudprzeciwko usłudze, którą debugujesz. - Pamiętaj, że czas w przeglądarce i czas na serwerze mogą się różnić przy debugowaniu problemów z wygaśnięciem.
Powiązane lokalne narzędzia
- Użyj Base64 Encoder Decoder gdy trzeba sprawdzić zwykłe ciągi base64. JWT używają base64url, więc ten dekoder JWT jest bezpieczniejszym wyborem do pełnych tokenów.
- Użyj JSON Beautifier gdy chcesz sformatować skopiowane obiekty payload poza kontekstem tokenu.
- Użyj Unix Timestamp Converter gdy potrzebujesz dedykowanej kontroli znaczników czasu dla wartości NumericDate, takich jak
iat,nbf, lubexp.
Najczęściej zadawane pytania
Czy ten dekoder JWT weryfikuje podpisy?
Nie. Dekoduje nagłówek i ładunek, aby można je było zbadać, ale nie weryfikuje podpisu ani nie dowodzi, że token jest zaufany. Weryfikacja wymaga sekretu wydawcy, klucza publicznego lub konfiguracji JWKS. Podpis nie jest pokazywany jako zdekodowany panel JSON, ponieważ jest wartością kryptograficzną, a nie czytelnymi danymi roszczeń; to narzędzie pokazuje go tylko w wyjściu surowych segmentów.
Czy każdy może zdekodować JWT?
Tak — nagłówek i ładunek są zakodowane, nie zaszyfrowane, chyba że Twój system używa osobnego formatu zaszyfrowanego tokenu. Nie umieszczaj tajemnic w ładunkach JWT.
Co oznacza wygasły JWT?
Jeśli roszczenie exp jest w przeszłości, serwer powinien normalnie odrzucić token. Ta strona może pokazać znacznik czasu, lecz serwer jest ostatecznym autorytetem.
Dlaczego narzędzie akceptuje przedrostek Bearer?
Deweloperzy często kopiują tokeny z nagłówka Authorization: Bearer ... Authorization: Bearer ... narzędzie usuwa przedrostek przed dekodowaniem zawartości tokenu.