JWT Dekoder
Zalijepite JWT za dekodiranje i pregled zaglavlja, sadržaja i zahtjeva.
Što je JWT?
JSON Web Token (JWT, izgovara se „džot
JWT se sastoji od tri Base64URL-kodirana dijela odvojena točkama: zaglavlja, tereta i potpisa. Zaglavlje specificira algoritam potpisivanja (npr. HS256, RS256). Teret sadrži tvrdnje — parove ključ-vrijednost s informacijama poput korisničkog ID-a, ovlaštenja i vremena isteka. Potpis osigurava da token nije modificiran.
Uobičajene JWT tvrdnje
- sub: sub (Subjekt): Identificira nositelja — obično korisnički ID ili e-mail adresu.
- iat: iat (Issued At — Izdano u): Unix vremenski žig koji označava kada je token kreiran.
- exp: exp (Expiration — Istjecanje): Unix vremenski žig nakon kojeg token više nije valjan.
- iss: iss (Issuer — Izdavač): Identificira tko je izdao token (npr. vaš autentikacijski poslužitelj).
- aud: aud (Audience — Publika): Identificira namjeravane primatelje tokena (npr. vaš API).
Kako koristiti ovaj alat
Zalijepite JWT u polje za unos. Alat odmah dekodira zaglavlje i teret, prikazujući tvrdnje u čitljivom formatu. Vremena isteka pretvaraju se u datume čitljive za ljude. Alat također provjerava strukturu tokena i ukazuje ako je format nevaljani.
Je li sigurno zalijepiti moj JWT ovdje?
Da. Ovaj alat dekodira JWT potpuno u vašem pregledniku koristeći JavaScript. Nikakvi podaci nisu poslani ni na jedan poslužitelj. Međutim, JWT-ovi bi uvijek trebali biti tretirani kao osjetljive vjerodajnice — nikada ne dijelite produkcijske tokene javno, ne postavljajte ih u poruke u chatu niti ih pohranjujte u kontrolu verzija.
Kako funkcionira JWT autentikacija
Kada se korisnik prijavi, poslužitelj kreira JWT koji sadrži identitet i ovlaštenja korisnika, potpisuje ga tajnim ključem i vraća ga klijentu. Klijent uključuje taj token u Authorization zaglavlje sljedećih API zahtjeva. Poslužitelj provjerava potpis kako bi se uvjerio da je token autentičan i da nije modificiran.
Ovaj pristup je bez stanja — poslužitelju nije potrebno pohranjivati podatke o sesiji u bazu podataka. Sve potrebne informacije ugrađene su u sam token. To JWT-ove čini idealnima za distribuirane sustave, mikro-uslužne arhitekture i serverless aplikacije gdje je dijeljeno stanje teško upravljati.
Česte greške s JWT-om
Pohrana osjetljivih podataka (lozinki, brojeva kreditnih kartica) u JWT teretu kritična je greška. Teret je samo Base64-kodiran, a ne enkriptiran — svaki tko ima token može ga dekodirati i pročitati. Pohranjujte samo identifikatore i ne-osjetljive tvrdnje u JWT-ovima.
Korištenje pretjerano dugih vremena isteka još je jedna uobičajena greška. Token koji vrijedi 30 dana daje napadaču 30 dana za korištenje ukradenog tokena. Održavajte kratke vijeke pristupnih tokena (5–15 minuta) i koristite tokene za osvježavanje za dugotrajne sesije.
Često postavljana pitanja
Koja je razlika između HS256 i RS256?
HS256 koristi dijeljenu simetričnu tajnu — isti ključ potpisuje i provjerava token. RS256 koristi asimetričan par ključeva — privatni ključ potpisuje, a javni ključ provjerava. RS256 je preferiran za distribuirane sustave jer ključ za provjeru može biti javno dijeljen bez ugrožavanja sigurnosti.
Može li se JWT opozvati?
JWT-ovi su bez stanja pa se ne mogu izravno opozvati. Uobičajeni zaobilazni načini uključuju održavanje popisa blokiranih opozvanih ID-ova tokena na strani poslužitelja, korištenje kratkih vremena isteka ili rotaciju ključeva za potpisivanje. Za potrebe trenutačnog opoziva, razmotrite korištenje neprozirnih tokena s pohranom sesije na strani poslužitelja.