Strumenti

Decodificatore JWT Online Gratuito

Decodifica e ispeziona i JSON Web Token direttamente nel browser. Visualizza header, payload e claim con date di scadenza leggibili. Nulla viene mai inviato a un server.

Ispettore Token

Algoritmo
Tipo
Scadenza

Header

Payload

Firma

La verifica della firma richiede la chiave segreta e non è supportata da questo strumento.
Tutta la decodifica avviene localmente nel tuo browser. Il tuo token non viene mai caricato, memorizzato o registrato.

Cos'è un JWT?

Un JSON Web Token (JWT, RFC 7519) è un modo compatto e sicuro per gli URL di rappresentare claim tra due parti. È composto da tre parti codificate in Base64URL unite da punti — header.payload.signature. L'uso più comune è l'autenticazione stateless delle API REST: dopo il login, il server emette un token firmato che il client invia a ogni richiesta, così il server può verificare l'identità senza mantenere lo stato della sessione.

Struttura JWT: Header, Payload, Firma

Header

Dichiara l'algoritmo di firma (alg, es. HS256, RS256, ES256) e il tipo di token (typ), quasi sempre JWT.

Payload

Contiene i claim standard e personalizzati. È solo codificato in Base64URL, non cifrato — chiunque può leggerlo, quindi non memorizzarvi mai dati segreti.

Firma

Calcolata firmando header e payload codificati con una chiave segreta o privata. Garantisce l'integrità ma non può essere verificata senza quella chiave.

I Claim JWT Comuni Spiegati

Il payload contiene i claim — affermazioni sul token. Questi claim registrati sono definiti dallo standard JWT:

sub Subject — il soggetto a cui si riferisce il token, di solito l'ID utente.
iss Issuer — identifica chi ha emesso il token.
aud Audience — i destinatari a cui è destinato il token.
exp Expiration Time — timestamp Unix dopo il quale il token deve essere rifiutato.
iat Issued At — timestamp Unix di quando il token è stato creato.
nbf Not Before — timestamp Unix prima del quale il token non deve essere accettato.
jti JWT ID — un identificatore univoco, utile per prevenire il replay del token.

Best Practice di Sicurezza per i JWT

Non inserire mai dati sensibili nel payload — è solo codificato, non cifrato, ed è leggibile da chiunque.
Imposta sempre un claim exp e mantieni brevi le durate dei token per limitare l'impatto di un token compromesso.
Preferisci algoritmi asimmetrici (RS256 o ES256) per i microservizi, così i servizi possono verificare senza condividere un segreto.
Convalida sempre i claim iss e aud lato server e rifiuta i token il cui alg è impostato su none.
Non esporre mai i token negli URL o nei file di log; inviali nell'header Authorization e conservali in modo sicuro.

Domande Frequenti

No. Un JWT standard è firmato, non cifrato. Header e payload sono solo codificati in Base64URL, il che significa che chiunque possieda il token può decodificarne e leggerne il contenuto. La firma garantisce solo che il token non sia stato manomesso — non nasconde i dati. Se hai bisogno di riservatezza, usa JWE (JSON Web Encryption) o non inserire mai dati sensibili nel payload.

No. Verificare la firma di un JWT richiede la chiave segreta (per HS256) o la chiave pubblica (per RS256/ES256), che solo il server emittente dovrebbe possedere. Questo strumento decodifica intenzionalmente il token lato client senza verifica, così nessuna chiave lascia mai il tuo dispositivo. Verifica sempre le firme sul tuo server, mai nel browser.

HS256 è simmetrico: la stessa chiave segreta firma e verifica il token, quindi chiunque possa verificare può anche falsificare token. RS256 è asimmetrico: una chiave privata firma e una chiave pubblica separata verifica. RS256 è preferito per sistemi distribuiti e microservizi perché puoi condividere liberamente la chiave pubblica mantenendo segreta la chiave privata di firma.

Il claim exp è un timestamp Unix in secondi. Un errore comune è fornirlo in millisecondi (13 cifre) invece che in secondi (10 cifre), il che colloca la scadenza molto nel passato o nel futuro. Anche lo sfasamento dell'orologio tra i server può causare scadenze premature — concedi un piccolo margine durante la convalida. Usa l'Ispettore Token qui sopra per vedere la data di scadenza leggibile accanto al valore grezzo.