JWT dekóder
Vložte JSON Web Token a prečítajte si jeho hlavičku a payload ako formátovaný JSON. Čas vypršania a vydania sa zobrazí ako dátum spolu s informáciou, či je token práve platný. Dekódovanie prebieha úplne vo vašom prehliadači, čo je dôležité, ak ide o aktívne prihlasovacie údaje.
0 znakov · 0 slov · 0 riadkov
0 znakov · 0 slov · 0 riadkov
Všetko prebieha priamo v tejto karte prehliadača. Váš text sa nikdy nenahráva ani neukladá.
Registrované claimy
Sedem názvov claimov definovaných v RFC 7519 §4.1. Všetky sú voliteľné; časy sú v sekundách od 1970-01-01 UTC.
| Claim | Význam |
|---|---|
iss | Vydavateľ: kto token vytvoril a podpísal |
sub | Subjekt: používateľ alebo entita, ktorej sa token týka |
aud | Publikum: komu je token určený |
exp | Čas vypršania: po tomto okamihu token odmietnuť |
nbf | Platí od: pred týmto okamihom token odmietnuť |
iat | Vydaný: kedy bol token vytvorený |
jti | ID JWT: jedinečný identifikátor, slúži proti opakovanému použitiu |
Bežné hodnoty alg
| Hodnota alg | Význam |
|---|---|
HS256 | HMAC so SHA-256; jedno zdieľané tajomstvo podpisuje aj overuje |
RS256 | Podpis RSA PKCS#1 v1.5 so SHA-256; súkromný kľúč podpisuje, verejný overuje |
PS256 | RSA-PSS so SHA-256 |
ES256 | ECDSA na krivke P-256 so SHA-256; krátke podpisy |
EdDSA | Podpisy Ed25519 alebo Ed448 |
none | Nepodpísaný token; servery by ho mali odmietnuť |
Čo obsahuje JSON Web Token
JWT je definovaný v RFC 7519 (máj 2015), ktorý odporúča vyslovovať ho ako anglické slovo „jot“. Bežná podpísaná podoba sú tri reťazce Base64url spojené bodkami: header.payload.signature. Hlavička (header) uvádza podpisový algoritmus v poli alg, napríklad HS256 alebo RS256, a často aj ID kľúča v kid. Payload obsahuje claimy, teda polia JSON ako sub (používateľ), iss (vydavateľ), aud (zamýšľané publikum) a exp, nbf a iat, čo sú časy v sekundách od 1. januára 1970 UTC. Dekodér tieto tri hodnoty prevedie na váš miestny čas a ISO 8601 a povie vám, či platnosť tokenu vypršala, či ešte nie je platný, alebo je v rámci svojho okna platnosti.
Base64url je kódovanie, nie šifrovanie, takže ktokoľvek, kto má token, si môže prečítať jeho payload presne tak, ako to robí táto stránka. Do claimov nikdy nevkladajte heslá, čísla kariet ani iné tajné údaje. Token s piatimi časťami oddelenými bodkami je JWE, teda šifrovaný token; jeho obsah sa bez kľúča prečítať nedá a dekodér to oznámi. Úvodné „Bearer “ skopírované z hlavičky Authorization sa odstráni automaticky.
Prečo sa tu podpis neoveruje
Podpis dokazuje, že hlavičku a payload vytvoril niekto, kto má kľúč, a že sa odvtedy nezmenili. Na jeho kontrolu je potrebný ten kľúč: zdieľané tajomstvo pri algoritmoch HMAC ako HS256, alebo verejný kľúč vydavateľa pri RS256, ES256 alebo EdDSA. Vkladať produkčné podpisové tajomstvo do akejkoľvek webovej stránky je zlý nápad a dekodér, ktorý by bez neho predstieral, že za token ručí, by vyvolával falošný pocit istoty, preto tento nástroj podpis zobrazí, ale neoverí. To, čo vidíte, berte ako tvrdenie, ktoré token uvádza, nie ako fakt.
Overenie patrí na váš server, s použitím udržiavanej knižnice a pevne zadaným očakávaným algoritmom. Vysvetľujú to dve historické chyby: prijímanie alg „none“, ktoré komukoľvek umožní sfalšovať nepodpísaný token, a zámena algoritmu, pri ktorej sa server očakávajúci RS256 nechá oklamať a overí podpis HS256 s verejným kľúčom ako tajomstvom HMAC. Dekodér slúži na ladenie: zistíte, aké claimy poskytovateľ vydáva, všimnete si nesprávne publikum alebo zistíte, že relácia zlyhala, lebo exp vypršalo pred minútou. Na surové čítanie segmentov Base64url použite dekodér Base64.
Často kladené otázky
- Je bezpečné vložiť skutočný prístupový token do JWT dekódera?
- Na tejto stránke token neopustí váš prehliadač. Platný token však funguje ako heslo, kým nevyprší, preto uprednostnite expirované alebo testovacie tokeny a živé nedávajte do snímok obrazovky ani do chatov.
- Prečo sa môj token zobrazuje ako vypršaný, hoci bol práve vydaný?
- Najprv skontrolujte hodiny na svojom zariadení. Niektorí vydavatelia dávajú prístupovým tokenom životnosť len niekoľko minút a token skopírovaný z logu môže byť starší, než vyzerá. Hodnota exp zapísaná v milisekundách namiesto sekúnd spôsobí opak a skončí tisíce rokov v budúcnosti.
- Môže niekto zmeniť payload môjho JWT?
- Môžu ho upraviť a znova zakódovať, ale podpis už nebude sedieť. Server, ktorý overuje podpisy správnym kľúčom a algoritmom, upravený token odmietne.
- Aký je rozdiel medzi JWS a JWE?
- JWS (RFC 7515) je podpísaný, má tri časti a môže ho prečítať ktokoľvek. JWE (RFC 7516) je šifrovaný, má päť častí a payload si môže prečítať iba držiteľ kľúča.
- Zneplatní odhlásenie JWT?
- Sám osebe nie. Podpísaný JWT zostáva platný do exp, pokiaľ server nevedie zoznam zakázaných tokenov alebo nekontroluje záznam relácie, preto sa prístupovým tokenom zvyčajne dávajú krátke životnosti.