Co je tento nástroj?
JWT (JSON Web Token) je kompaktní, URL-bezpečný řetězec používaný k přenosu tvrzení (claims) mezi dvěma stranami — nejčastěji jako autentizační token po přihlášení. Skládá se ze tří částí oddělených tečkou: hlavičky (algoritmus a typ tokenu), payloadu (samotné claims — ID uživatele, role, expirace atd.) a podpisu (server jím ověřuje, že token nebyl pozměněn).
Hlavička a payload jsou pouze Base64URL kódovaný JSON — nikoli šifrovaný — takže je může kdokoli dekódovat a přečíst bez tajného klíče. Pouze ověření podpisu vyžaduje tajný klíč. Přesně to tento nástroj dělá: dekóduje čitelné části a zobrazí je jako formátovaný JSON, bez pokusu o ověření podpisu.
JWT jsou standardizovány v RFC 7519, přičemž vrstva podpisu (JWS) je definována samostatně v RFC 7515 — užitečné odkazy, pokud potřebujete autoritativní seznam registrovaných claims jako exp, iat, sub a aud.
Proč ho používat?
- Okamžitě čitelná hlavička a payload, naformátované jako JSON — už žádné ruční rozdělování řetězce a Base64 dekódování.
- Automatická kontrola expirace: pokud payload obsahuje claim „exp“, je převeden na čitelné datum a označen jako platný nebo prošlý.
- Kopírování jedním kliknutím pro hlavičku nebo payload zvlášť.
- 100% na straně klienta — token je dekódován lokálně a nikdy se nepřenáší, bezpečné i pro tokeny z produkčního systému.
- Neprovádí se ani netvrdí žádné ověření podpisu — jde o nástroj pro ladění a inspekci, nikoli validátor.
Jak se používá
- Vložte svůj JWT do pole (celý řetězec, včetně všech tří částí oddělených tečkou).
- Hlavička a payload se dekódují automaticky během psaní.
- Zkontrolujte řádek expirace, pokud token obsahuje claim „exp“ — zobrazí přesné datum a informaci, zda platnost tokenu vypršela.
- Klikněte na „Copy“ pod kterýmkoli polem pro zkopírování dané sekce jako JSON.
Příklad
Vstup
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0IiwibmFtZSI6IkpvaG4gRG9lIiwiZXhwIjoxNzAwMDAwMDAwfQ.dQw4w9WgXcQVýstup
Header: {"alg": "HS256"}
Payload: {"sub": "1234", "name": "John Doe", "exp": 1700000000}Podpis (třetí část) se nikdy nedekóduje ani nekontroluje — jde o neprůhledný hash používaný na straně serveru k ověření pravosti.
Praktické tipy
- Ladění chyb „neplatný token“: nejdřív dekódujte payload a zkontrolujte claim „exp“ — vypršelý token je nejčastější příčina, a ze samotné chybové zprávy to není vždy zřejmé.
- Zjištění, co skutečně obsahuje token třetí strany API: mnoho API vrací jako přístupový token na první pohled neprůhledný JWT — dekódujte jej zde a zjistěte, jaké scopes, ID uživatele nebo expiraci vaše integrace ve skutečnosti dostává.
- Nikdy nepředpokládejte, že je JWT šifrovaný: pokud během vývoje uvidíte v dekódovaném payloadu citlivá data (e-mail, interní ID), je to signál, že by tato data měla zůstat na straně serveru, místo aby se spoléhalo na to, že je klient nebude číst.
Běžné claims, se kterými se v payloadu setkáte
| Claim | Význam |
|---|---|
| sub | Subject — obvykle ID uživatele, kterého token reprezentuje |
| exp | Čas vypršení platnosti (unixový timestamp) — po něm je token neplatný |
| iat | Issued at — kdy byl token vytvořen |
| iss | Issuer — která služba/server token vydal |
| aud | Audience — pro kterou službu je token určen |
| role / roles / scope | Vlastní claims — oprávnění nebo role přidělené uživateli (nejsou součástí standardu JWT, ale jsou nesmírně běžné) |
Časté dotazy
Ověřuje tento nástroj podpis JWT?
Ne. Ověření podpisu vyžaduje tajný nebo veřejný klíč použitý k podepsání tokenu, který má k dispozici pouze vydávající server. Tento nástroj dekóduje pouze hlavičku a payload — tedy lidsky čitelné části — takže si můžete prohlédnout claims a expiraci bez nutnosti jakéhokoli klíče.
Je bezpečné sem vložit skutečný produkční JWT?
Dekódování probíhá zcela ve vašem prohlížeči pomocí JavaScriptu — token se neodesílá na žádný server, včetně toho našeho. I přesto s tokeny zacházejte jako s hesly: nevkládejte je do nástrojů, kterým nedůvěřujete, a vyhněte se sdílení screenshotů dekódovaných tokenů obsahujících citlivé claims.
Proč si může kdokoli přečíst payload mého JWT bez hesla?
Je to záměr — hlavička a payload JWT jsou kódovány pomocí Base64URL, nikoli šifrovány. Kódování není zabezpečení; pouze činí JSON bezpečným pro přenos přes URL. Nikdy nedávejte tajné údaje (hesla, čísla platebních karet) přímo do payloadu JWT — předpokládejte, že kdokoli má token, může si přečíst jeho obsah.
Co znamená claim „exp“ a proč je důležitý?
„exp“ je čas vypršení platnosti tokenu jako unixový timestamp (sekundy od roku 1970). Server odmítne JWT poté, co tento čas uplyne, což si vynutí opětovné přihlášení klienta. Tento nástroj jej převádí na čitelné datum a označuje, zda platnost již vypršela, což je užitečné při ladění problémů typu „proč se mi odhlásila relace“.
U mého tokenu se zobrazuje chyba analýzy JSON — proč?
Buď řetězec není platný JWT (měl by mít přesně tři části oddělené tečkou), nebo byl zkrácen či pozměněn — častou příčinou je token náhodně rozdělený na více řádků nebo chybějící koncové znaky při kopírování.