JWT Decoder
Lipiți un JWT pentru a decoda și inspecta antetul, payload-ul și revendicările.
Ce este un JWT?
Un JSON Web Token (JWT, pronunțat 'jot
Un JWT este format din trei părți codificate Base64URL separate prin puncte: un antet, un payload și o semnătură. Antetul specifică algoritmul de semnare (de exemplu, HS256, RS256). Payload-ul conține claim-uri — perechi cheie-valoare cu informații precum ID-ul utilizatorului, permisiunile și timpul de expirare. Semnătura garantează că token-ul nu a fost alterat.
Claim-uri frecvente JWT
- sub: sub (Subject): Identifică principalul — de obicei un ID de utilizator sau o adresă de email.
- iat: iat (Issued At): Timestamp Unix indicând când a fost creat token-ul.
- exp: exp (Expiration): Timestamp Unix după care token-ul nu mai este valid.
- iss: iss (Issuer): Identifică cine a emis token-ul (de exemplu, serverul de autentificare).
- aud: aud (Audience): Identifică destinatarul intenționat al token-ului (de exemplu, API-ul dumneavoastră).
Cum se folosește acest instrument
Lipiți un JWT în câmpul de intrare. Instrumentul decodifică imediat antetul și payload-ul, afișând claim-urile în format lizibil. Timpii de expirare sunt convertiți în date lizibile. Instrumentul verifică și structura token-ului și indică dacă formatul este invalid.
Este sigur să lipesc JWT-ul meu aici?
Da. Acest instrument decodifică JWT-ul complet în browserul dumneavoastră folosind JavaScript. Niciun dat nu este trimis pe vreun server. Totuși, JWT-urile trebuie tratate întotdeauna ca acreditive sensibile — nu partajați niciodată token-uri de producție public, nu le postați în mesaje de chat și nu le includeți în controlul versiunilor.
Cum funcționează autentificarea JWT
Când un utilizator se autentifică, serverul creează un JWT conținând identitatea și permisiunile utilizatorului, îl semnează cu o cheie secretă și îl returnează clientului. Clientul include acest token în antetul Authorization al cererilor API ulterioare. Serverul verifică semnătura pentru a se asigura că token-ul este autentic și nu a fost modificat.
Această abordare este fără stare — serverul nu trebuie să stocheze datele sesiunii într-o bază de date. Toate informațiile necesare sunt incluse în token. Aceasta face JWT-urile ideale pentru sistemele distribuite, arhitecturile de microservicii și aplicațiile serverless unde starea partajată este dificil de gestionat.
Greșeli frecvente cu JWT
Stocarea datelor sensibile (parole, numere de card de credit) în payload-ul JWT este o greșeală critică. Payload-ul este doar codificat Base64, nu criptat — oricine deține token-ul poate decodifica și citi conținutul. Stocați doar identificatori și claim-uri non-sensibile în JWT-uri.
Utilizarea unor timpi de expirare excesiv de lungi este o altă eroare frecventă. Un token valid timp de 30 de zile oferă unui atacator 30 de zile pentru a folosi un token furat. Mențineți durata de viață a token-urilor de acces scurtă (5–15 minute) și folosiți token-uri de reîmprospătare pentru sesiunile de lungă durată.
Întrebări frecvente
Care este diferența dintre HS256 și RS256?
HS256 folosește un secret simetric partajat — aceeași cheie semnează și verifică token-ul. RS256 folosește o pereche de chei asimetrice — o cheie privată semnează și o cheie publică verifică. RS256 este preferat pentru sistemele distribuite deoarece cheia de verificare poate fi partajată public fără a compromite securitatea.
Poate fi revocat un JWT?
JWT-urile sunt fără stare, deci nu pot fi revocate direct. Soluțiile frecvente includ menținerea unei liste negre server-side de ID-uri de token-uri revocate, utilizarea unor timpi de expirare scurți sau rotația cheilor de semnare. Pentru nevoi de revocare imediată, luați în considerare folosirea token-urilor opace cu stocare de sesiune server-side.