Co je JSON Web Token?
JSON Web Token (JWT) je kompaktní URL-bezpečná obálka pro malý payload nároků. Je to standardní formát pověření pro bezstavové webové relace, OAuth/OIDC ID tokeny, API autentizaci stroj-stroj a podepsané magické odkazy. JWT je vždy tři base64url segmenty spojené tečkami: header.payload.signature. Hlavička a payload jsou JSON; podpis je binární MAC nebo digitální podpis přes první dva segmenty.
Jak JWTs fungují?
Když tento nástroj dekóduje token, prochází stejnou tříkrokovou cestou jako každá JWT knihovna:
- Rozdělte token na tečkách na přesně tři neprázdné segmenty. Jakýkoli jiný tvar je chybný.
- Base64url-dekódujte segmenty 0 a 1, pak na každý aplikujte
JSON.parse. Hlavička nese algoritmus (alg) a typ tokenu (typ). Payload nese claimy (sub,exp,iat, vlastní klíče). - Pokud je poskytnuto tajemství, přepočítejte MAC přes
<segment0>.<segment1>pomocí algoritmu v hlavičce. Porovnejte bajty s třetím segmentem. - Zobrazte výsledek ověření spolu s dekódovanými claimy, včetně lidsky čitelného indikátoru vypršení vypočteného z claimu
exp.
Proč dekódovat JWT v prohlížeči?
Vložení skutečného, používaného JWT do vzdáleného debuggeru uniká pověření do logů té služby, jejího observability stacku a jakéhokoli partnera, kterému služba data posílá. I když web třetí strany tvrdí, že tokeny neloguje, nemáte způsob, jak to ověřit. Tento nástroj byl vytvořen, abyste nikdy nemuseli dělat tento kompromis:
- Nulová síť: runtime nemá žádná volání
fetch,XMLHttpRequestanisendBeacon. Otevřete DevTools při dekódování a ověřování — panel Network zůstává tichý. - Nativní Web Crypto: HMAC ověření používá
crypto.subtle.importKeyacrypto.subtle.sign, stejné primitivy, které by volal váš runtime. - Statický deploy: každá stránka je jediný statický HTML soubor bez serverového endpointu, který by mohl být kompromitován. Není co uniknout, protože není server, kterému by unikalo.
Co tento nástroj ověřuje a co ne?
Verze 1 tohoto nástroje ověřuje pouze HMAC-SHA rodinu podpisů. Konkrétně:
- Podporováno: HS256, HS384, HS512. Poskytněte sdílené tajemství a nástroj přepočítá a porovná MAC.
- Zatím nepodporováno: RS256/384/512 (RSA), ES256/384/512 (ECDSA), EdDSA a PS256/384/512 (RSA-PSS). Ty vyžadují veřejný klíč ve formátu PEM nebo JWK a jsou záměrně odloženy do následné verze.
- Odmítnuto:
alg: "none". Nástroj token dekóduje, ale explicitně jej označí jako nezabezpečený — neprobíhá žádná validace podpisu a jakýkoli produkční systém, který takový token přijímá, má vážnou zranitelnost.
Jak vypadá příklad dekódování JWT?
Vložte kanonický RFC 7519 příklad tokenu do vstupního pole výše:
eyJhbG...VCJ9.eyJzdW...IyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Hlavička se dekóduje na {"alg":"HS256","typ":"JWT"} a payload na {"sub":"1234567890","name":"John Doe","iat":1516239022}. Zadejte your-256-bit-secret do ověřovacího panelu a kontrola podpisu vrátí platný. Změňte jeden znak tajemství a vrátí neplatný. Nic z toho neopouští váš prohlížeč.
Toto je JWT dekodér, který jsme si přáli, aby existoval, když jsme potřebovali ladit token v produkci: respektující soukromí, rychlý a postavený na stejných primitivech, které runtime používá.