JWT-hibakereső / -dekódoló

Bármely JWT beilleszthető, hogy három pontokkal elválasztott része dekódolható legyen — a base64url-fejléc, a payload és az aláírás szépen formázott JSON-ként jelenik meg, a regisztrált állításokat (exp, iat, nbf és társai) pedig helyi időre alakítja. Ezután az aláírás ellenőrizhető a WebCrypto API-val: HMAC (HS256/384/512) titokkal, vagy RSA/ECDSA (RS256/384/512, ES256/384/512) PEM-formátumú nyilvános kulccsal, és egy mintatoken HS256-tal egy kattintásnyira van kísérletezéshez. Minden helyben fut — a tokeneket, titkokat és kulcsokat soha nem küldik el sehová.
JWT-token Formátum: fejléc.payload.aláírás (három base64url-szakasz).
Figyelmeztetés: ez a token alg:none értéket deklarál, ami azt jelenti, hogy nincs aláírva. Valódi szolgáltatásoknak el kell utasítaniuk az aláírás nélküli tokeneket — nem megbízhatóként kezelendő.
ÁllításÉrtékÉrtelmezés
Titok
A crypto.subtle nem érhető el ebben a környezetben, ezért az aláírás-ellenőrzés le van tiltva. Az oldal https: protokollon vagy helyi fájlból megnyitva engedélyezhető. A dekódolás továbbra is működik.
Az eredmény értelmezése: a fejléc általában tartalmazza az alg (aláírási algoritmus) és a typ mezőt. Helyi idővé alakítva megjelennek a regisztrált állítások: iat (kibocsátás ideje), nbf (nem előbb) és exp (lejárat) — a piros jelvény azt jelzi, hogy a token lejárt, a sárga, hogy 24 órán belül lejár. Az aláírás-ellenőrzés kiszámítja azt a MAC-et, amelyet a kibocsátó is kiszámítana, vagy ellenőrzi a beillesztett RSA/ECDSA nyilvános kulcsot, majd a tokent ÉRVÉNYES vagy ÉRVÉNYTELEN jelölés kapja. Csak a böngésző WebCrypto-rétegében megvalósított algoritmusok ellenőrizhetők; minden más nem támogatottként jelentésre kerül, nem találgatva.

Gyakori regisztrált állítások: a sub (alany) az a felhasználó vagy entitás, akire a token vonatkozik — a mintában csak numerikus azonosító, de a szolgáltatások gyakran e-mail-címet, felhasználónevet vagy UUID-t tesznek ide. Az iss a kibocsátót nevezi meg, az aud a célzott közönséget, a jti pedig egy egyedi tokenazonosító, amely az ismétlés elleni védelmet szolgálja. Ezek az állítások nincsenek titkosítva; a token birtokában bárki olvashatja őket, ezért a JWT-payloadba soha nem szabad jelszót vagy titkot tenni.

Adatvédelem: a dekódolás és az ellenőrzés teljes egészében ezen az oldalon történik a WebCrypto API-val — a tokent, a titkot és a nyilvános kulcsokat soha nem továbbítják. Az alg:none tokennél az oldal egyértelmű figyelmeztetést mutat: az aláírás nélküli tokeneket egy valódi API soha nem fogadhatja el.