Czy mój JWT jest wysyłany na serwer?+−
Nie. Dekodowanie odbywa się całkowicie w Twojej przeglądarce za pomocą interfejsów Web atob i TextDecoder - token oraz każdy sekret lub klucz publiczny wklejony w celu weryfikacji podpisu nigdy nie opuszczają Twojego urządzenia.
Czy to narzędzie może zweryfikować podpis?+−
Tak, jako dodatek działający w miarę możliwości. Jeśli znasz sekret HMAC (dla HS256/384/512) lub wkleisz klucz publiczny zakodowany w PEM (dla RS256/384/512 lub ES256/384/512), narzędzie sprawdzi podpis lokalnie za pomocą Web Crypto API przeglądarki. Bez klucza dekodowane i wyświetlane są tylko nagłówek i payload - samo dekodowanie nigdy nie wymaga klucza podpisującego.
Dlaczego jest napisane, że algorytm to "none"?+−
"alg": "none" oznacza, że token w ogóle nie jest podpisany - ktokolwiek mógł wpisać do niego dowolne roszczenia. Niektóre biblioteki historycznie błędnie akceptowały takie niepodpisane tokeny jako prawidłowe, co stało się znanym sposobem obejścia uwierzytelniania. To narzędzie zawsze wyraźnie to oznacza, żebyś tego nie przeoczył.
Co oznaczają exp, iat i nbf?+−
To standardowe roszczenia czasowe z RFC 7519: iat wskazuje, kiedy token został wydany, nbf - najwcześniejszy moment, w którym staje się ważny, a exp - kiedy przestaje nim być. Wszystkie trzy są przechowywane jako NumericDate - liczba sekund od epoki Uniksa - co to narzędzie przekształca na czytelną datę i czas względny, np. "wygasa za 2 godziny".
Dlaczego mogę odczytać payload bez sekretu?+−
Ponieważ nagłówek i payload JWT są jedynie zakodowane w base64url, a nie zaszyfrowane - kodowanie to nie to samo co poufność. Każdy, kto posiada token, może już odczytać jego roszczenia; podpis dowodzi jedynie, że nie zostały one zmodyfikowane przez kogoś bez klucza. Nigdy nie umieszczaj w payloadzie JWT niczego, czego nie chcesz, aby atakujący mógł odczytać bezpośrednio.
Mój token ma 3 części, ale nadal się nie dekoduje - dlaczego?+−
Każdy z trzech segmentów (nagłówek, payload, podpis) musi być prawidłowym tekstem base64url, a nagłówek i payload muszą dekodować się do prawidłowego JSON-a. To narzędzie dekoduje nagłówek i payload niezależnie i mówi dokładnie, który z nich jest uszkodzony i dlaczego (zły base64, zły UTF-8 lub nieprawidłowy JSON), zamiast po prostu zawieść po cichu.