Čo je tento nástroj?
JWT (JSON Web Token) je kompaktný, URL-bezpečný reťazec používaný na prenos claims medzi dvoma stranami — najčastejšie ako autentifikačný token po prihlásení. Skladá sa z troch častí oddelených bodkou: hlavičky (algoritmus a typ tokenu), payloadu (skutočné claims — ID používateľa, role, platnosť a pod.) a podpisu (server ním overuje, že token nebol pozmenený).
Hlavička a payload sú len JSON zakódovaný v Base64URL — nie šifrovaný — takže ich môže dekódovať a prečítať ktokoľvek bez tajného kľúča. Iba podpis vyžaduje na overenie tajný kľúč. Presne toto tento nástroj robí: dekóduje čitateľné časti a zobrazí ich ako formátovaný JSON, bez pokusu o overenie podpisu.
JWT sú štandardizované v RFC 7519, pričom vrstva podpisu (JWS) je definovaná samostatne v RFC 7515 — užitočné odkazy, ak potrebujete oficiálny zoznam registrovaných claims ako exp, iat, sub a aud.
Prečo ho používať?
- Okamžite čitateľná hlavička a payload formátované ako JSON — už žiadne ručné rozdeľovanie reťazca a dekódovanie Base64.
- Automatická kontrola platnosti: ak payload obsahuje claim "exp", prevedie sa na čitateľný dátum a označí sa ako platný alebo expirovaný.
- Kopírovanie hlavičky alebo payloadu jedným klikom, oddelene.
- 100 % na strane klienta — token sa dekóduje lokálne a nikdy sa neprenáša, bezpečné aj pri tokenoch z produkčného systému.
- Nevykonáva sa ani netvrdí sa žiadne overenie podpisu — ide o ladiaci/inšpekčný nástroj, nie validátor.
Ako sa používa
- Vložte svoj JWT do poľa (celý reťazec vrátane všetkých troch častí oddelených bodkou).
- Hlavička a payload sa dekódujú automaticky počas písania.
- Skontrolujte riadok platnosti, ak token obsahuje claim "exp" — zobrazí presný dátum a či token už expiroval.
- Kliknutím na "Copy" pod ktorýmkoľvek poľom skopírujete danú časť ako JSON.
Príklad
Vstup
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0IiwibmFtZSI6IkpvaG4gRG9lIiwiZXhwIjoxNzAwMDAwMDAwfQ.dQw4w9WgXcQVýstup
Header: {"alg": "HS256"}
Payload: {"sub": "1234", "name": "John Doe", "exp": 1700000000}Podpis (tretia časť) sa nikdy nedekóduje ani nekontroluje — je to nepriehľadný hash, ktorý slúži na overenie pravosti na strane servera.
Praktické tipy
- Riešite chyby typu „invalid token“? Najprv dekódujte payload a skontrolujte claim "exp" — expirovaný token je najčastejšia príčina a nie vždy je to zrejmé už zo samotnej chybovej hlášky.
- Chcete zistiť, čo skutočne obsahuje token API tretej strany? Mnohé API vracajú ako prístupový token na pohľad nepriehľadný JWT — dekódujte ho tu a zistite, aké rozsahy (scopes), ID používateľa alebo platnosť vaša integrácia skutočne dostáva.
- Nikdy nepredpokladajte, že je JWT šifrovaný: ak počas vývoja v dekódovanom payloade uvidíte citlivé dáta (e-mail, interné ID), je to signál presunúť tieto dáta na stranu servera namiesto spoliehania sa, že klient si ich neprečíta.
Bežné claims, ktoré uvidíte v payloade
| Claim | Význam |
|---|---|
| sub | Subject — zvyčajne ID používateľa, ktorého token reprezentuje |
| exp | Čas expirácie (Unix timestamp) — po ňom je token neplatný |
| iat | Issued at — kedy bol token vytvorený |
| iss | Issuer — ktorá služba/server token vydal |
| aud | Audience — pre ktorú službu je token určený |
| role / roles / scope | Vlastné claims — oprávnenia alebo role pridelené používateľovi (nie sú súčasťou štandardu JWT, ale sú mimoriadne bežné) |
Časté otázky
Overuje tento nástroj podpis JWT?
Nie. Overenie podpisu vyžaduje tajný alebo verejný kľúč použitý na podpísanie tokenu, ktorý má k dispozícii len vydávajúci server. Tento nástroj dekóduje iba hlavičku a payload — čitateľné časti — takže si môžete prezrieť claims a platnosť bez potreby akéhokoľvek kľúča.
Je bezpečné sem vložiť skutočný produkčný JWT?
Dekódovanie prebieha úplne vo vašom prehliadači pomocou JavaScriptu — token sa nikdy neposiela na žiadny server, vrátane nášho. Napriek tomu s tokenmi zaobchádzajte ako s heslami: nevkladajte ich do nástrojov, ktorým nedôverujete, a vyhýbajte sa zdieľaniu snímok obrazovky s dekódovanými tokenmi obsahujúcimi citlivé claims.
Prečo si môže ktokoľvek prečítať payload môjho JWT bez hesla?
Je to tak zámerne — hlavička a payload JWT sú zakódované v Base64URL, nie šifrované. Kódovanie nie je bezpečnosť; iba robí JSON bezpečným pre prenos cez URL. Nikdy nevkladajte tajné údaje (heslá, čísla kreditných kariet) priamo do payloadu JWT — počítajte s tým, že ktokoľvek, kto má token, si môže prečítať jeho obsah.
Čo znamená claim "exp" a prečo je dôležitý?
"exp" je čas expirácie tokenu vyjadrený ako Unix timestamp (sekundy od roku 1970). Servery odmietnu JWT po uplynutí tohto času, čo prinúti klienta znovu sa prihlásiť. Tento nástroj ho prevedie na čitateľný dátum a označí, či už expiroval, čo je užitočné pri ladení problémov typu „prečo ma odhlásilo“.
Môj token zobrazuje chybu parsovania JSON — prečo?
Buď reťazec nie je platný JWT (mal by mať presne tri časti oddelené bodkou), alebo bol skrátený či pozmenený — bežnou príčinou je token náhodne rozdelený na viacero riadkov alebo chýbajúce koncové znaky pri kopírovaní.