Decodor JWT

Lipește un JSON Web Token pentru a-i citi header-ul și payload-ul, a vedea când expiră și a înțelege fiecare claim. Tokenul nu părăsește niciodată browserul.

Rulează în browserFără înregistrareNimic nu este încărcat

Decodificarea nu este verificare. Oricine poate citi header-ul și payload-ul unui JWT, deoarece sunt doar codificate base64url. Acest instrument arată ce pretinde tokenul; nu dovedește că tokenul este autentic. Verifică întotdeauna semnătura pe serverul tău.

Header

Payload


      

Verifică semnătura (opțional, HS256/HS384/HS512)

Verifică o semnătură HMAC cu un secret introdus de tine, folosind Web Crypto API din browser. Secretul nu părăsește niciodată această pagină. Tokenurile RSA/ECDSA necesită cheia publică a emitentului și nu sunt verificate aici.

Cum se folosește: Decodor JWT

  1. Lipește tokenul în caseta Token codificat. Un prefix Bearer dintr-un header Authorization este ignorat.
  2. Header-ul și payload-ul sunt decodificate instantaneu și afișate ca JSON formatat.
  3. Citește tabelul Claim-uri explicate: exp, iat și nbf sunt convertite în date cu timpi de tip „expiră în” / „a expirat acum”.
  4. Verifică bara de stare pentru probleme de expirare și avertismentele pentru setări riscante precum alg: none.
  5. Opțional, introdu secretul partajat pentru a verifica local o semnătură HS256, HS384 sau HS512.

Ce conține un JWT?

Un JSON Web Token (RFC 7519) este format din trei șiruri base64url unite prin puncte: header.payload.signature. Header-ul numește algoritmul de semnare (alg) și tipul tokenului. Payload-ul conține claim-urile, cum ar fi cine este utilizatorul și când expiră tokenul. Semnătura este calculată peste primele două părți cu un secret sau o cheie privată.

Decodificarea nu înseamnă verificare

Header-ul și payload-ul sunt doar codificate, nu criptate, deci oricine are tokenul le poate citi. De aceea nu pune niciodată parole sau secrete în payload-ul unui JWT. Decodificarea îți spune ce afirmă un token. Verificarea semnăturii, de obicei pe serverul API cu o bibliotecă precum jose sau PyJWT, dovedește cine l-a emis și că nu a fost modificat. Un server trebuie să verifice și exp, nbf, iss și aud și să respingă algoritmii neașteptați.

Fișă rapidă a claim-urilor înregistrate

ClaimSemnificație
issEmitent: cine a creat și semnat tokenul
subSubiect: de obicei ID-ul utilizatorului
audAudiență: pentru ce API este destinat tokenul
expMomentul expirării, în secunde de la epoca Unix
nbfNu este valid înainte de acest moment
iatMomentul emiterii
jtiID unic al tokenului, util pentru liste de revocare

Depanarea erorilor „token expired”

Dacă un API respinge un token care pare proaspăt, compară exp și nbf cu ceasul serverului. Diferențele mici de ceas între mașini sunt frecvente, așa că majoritatea bibliotecilor permit o toleranță de 30-60 de secunde. Verifică și că exp este în secunde: o valoare în milisecunde este o eroare frecventă și mută expirarea cu mii de ani în viitor.

Întrebări frecvente

Este sigur să lipesc aici un JWT de producție?
Decodificarea are loc în întregime în browser, cu JavaScript. Tokenul nu este încărcat, înregistrat sau stocat. Ca în cazul oricărei credențiale, tratează totuși cu grijă tokenurile active și preferă tokenuri expirate sau de test când partajezi capturi de ecran.
Verifică acest instrument semnătura JWT?
Decodificarea singură nu. Poți verifica opțional tokenuri HS256, HS384 și HS512 introducând secretul partajat; HMAC-ul este calculat local cu Web Crypto API. Tokenurile RS256 și ES256 trebuie verificate cu cheia publică a emitentului pe server.
De ce tokenul meu apare ca expirat?
Claim-ul exp este în trecut față de ceasul calculatorului tău. Cere un token nou sau reîmprospătează-l cu refresh token-ul. Dacă orele par greșite, verifică diferența de ceas sau o valoare exp scrisă în milisecunde.
Care este diferența dintre JWT, JWS și JWE?
JWT este formatul claim-urilor. Un JWS este un JWT semnat, cu trei părți, adică ce decodifică acest instrument. Un JWE este un JWT criptat, cu cinci părți; payload-ul lui nu poate fi citit fără cheia de decriptare.
De ce este periculos alg „none”?
Un token nesemnat poate fi falsificat de oricine. Serverele trebuie să respingă alg: none și să accepte doar algoritmul specific pe care îl așteaptă.

Instrumente similare