Przejdź do treści
Quaestio

Dekoder JWT

Wklej token, aby zobaczyć, co zawiera i kiedy wygasa. Jeśli masz klucz, możesz też sprawdzić podpis.

Dekodowanie odbywa się w przeglądarce. Nic nie jest wysyłane.

Ważność

…

Zdekodowany, niezweryfikowany: każdy może utworzyć token z taką zawartością. Wpisz poniżej klucz, aby sprawdzić podpis.

Nagłówek

{
  "alg": "HS256",
  "typ": "JWT"
}

Ładunek

{
  "iss": "https://example.com",
  "sub": "1234567890",
  "aud": "quaestio",
  "name": "Ada Lovelace",
  "iat": 1757000000,
  "nbf": 1757000000,
  "exp": 4102444800,
  "jti": "4f1c2a9e"
}

Pola i claimy

algalgorytm podpisu
HS256
typtyp tokena
JWT
isswystawca
https://example.com
subpodmiot, zwykle identyfikator użytkownika
1234567890
audodbiorca, dla którego przeznaczony jest token
quaestio
expczas wygaśnięcia
4102444800
nbfnieważny przed
1757000000
iatczas wystawienia
1757000000
jtiunikalny identyfikator tokena
4f1c2a9e
Podpis
Rozmiar w bajtach: 32

Sprawdź podpis

Klucz jest używany tylko w przeglądarce i nie jest zapisywany.

Osadź

Osadź to narzędzie na swojej stronie

Skopiuj kod i wklej go tam, gdzie ma się pojawić narzędzie, np. we wpisie na blogu albo na stronie szkoły. To nic nie kosztuje, ramka nie zawiera reklam, a narzędzie liczy w przeglądarce odwiedzającego.

Jak to działa

JSON Web Token (JWT, RFC 7519) składa się z trzech części oddzielonych kropkami: nagłówka, ładunku (payload) i podpisu. Nagłówek i ładunek to JSON zakodowany w base64url, odmianie base64, która używa - i _ zamiast + i / oraz pomija dopełnienie. Każdy może odczytać zawartość; nie jest ona zaszyfrowana.

Nagłówek podaje algorytm (alg), a często także typ (typ) i identyfikator klucza (kid). Ładunek zawiera claimy, czyli stwierdzenia o użytkowniku lub sesji. Standard rejestruje siedem: iss (wystawca), sub (podmiot), aud (odbiorca), exp (czas wygaśnięcia), nbf (nie wcześniej niż), iat (czas wystawienia) i jti (identyfikator JWT). Pozostałe claimy określa wystawca.

Czasy w exp, nbf i iat to sekundy od 1 stycznia 1970 UTC. Tokenu nie wolno akceptować od chwili exp ani przed chwilą nbf. Dekoder porównuje je z zegarem twojego urządzenia, więc źle ustawiony zegar daje błędny status.

Dekodowanie to nie weryfikacja. Podpis pokazuje, że token wystawił ktoś, kto ma klucz, i że zawartość nie została zmieniona, ale da się to sprawdzić tylko kluczem. HS256, HS384 i HS512 używają wspólnego sekretu (HMAC). RS i PS używają RSA, ES krzywych eliptycznych (ECDSA z P-256, P-384 lub P-521), a EdDSA Ed25519; te sprawdza się kluczem publicznym w formacie PEM lub JWK, który wystawcy często publikują jako JWK Set.

Token z alg none nie ma podpisu i serwer nigdy nie powinien go akceptować. Kilka znanych luk bezpieczeństwa wzięło się z bibliotek, które akceptowały none albo pozwalały atakującemu zamienić RS256 na HS256 i podpisać token kluczem publicznym użytym jako sekret.

Token często działa jak klucz do konta. Tutaj wszystko dzieje się w twojej przeglądarce za pomocą wbudowanej kryptografii (WebCrypto), a ani token, ani sekret, ani klucz nie są nigdzie wysyłane. Mimo to nigdy nie wklejaj aktywnego tokena ani sekretu na stronie, której nie ufasz, i nigdy nie wklejaj klucza prywatnego: do weryfikacji wystarczy publiczny.

Źródła

Jak sprawdzamy narzędzia