TanodTools
IT

Decodificatore JWT

Incolla un JSON Web Token per leggerne header e payload, con scadenza e orari di emissione mostrati come date vere.

Funziona interamente nel tuo browser

Token fino a 1 MB. Solo decodifica: la firma viene mostrata ma non verificata.

Come decodificare un JWT

  1. Incolla il token nella casella. Un Bearer iniziale e gli spazi o le virgolette attorno vengono ignorati.
  2. Leggi sotto header e payload, e gli orari di scadenza, di inizio validità e di emissione nel tuo fuso orario e in UTC.
  3. Copia il payload o l'header decodificato come JSON formattato se ti serve altrove.

Che cosa c'è dentro un JSON Web Token

Un JWT firmato è composto da tre pezzi di testo Base64url uniti da punti: un header, un payload e una firma. Header e payload sono semplicemente JSON scritto in Base64url, ed è per questo che chiunque può leggerli. Base64url è una codifica, non una cifratura, quindi non mettere mai segreti nel payload di un JWT, a meno che il token sia cifrato.

Il payload contiene i claim. Alcuni nomi sono registrati: iss (chi ha emesso il token), sub (a chi si riferisce), aud (a chi è destinato), exp (quando scade), nbf (non valido prima di), iat (quando è stato emesso) e jti (un ID univoco). I servizi aggiungono i propri claim, come ruoli, scope o un indirizzo email.

La firma è ciò che rende affidabili i claim, e controllarla richiede la chiave di firma, che dovrebbero avere solo l'emittente e i servizi che accettano il token. Questo decodificatore si ferma volutamente alla lettura: mostra che cosa dice un token e quando scade, che di solito è ciò che serve per fare il debug di un login o di una chiamata API.

Suggerimenti

Domande frequenti

Verifica la firma?

No. Questa pagina decodifica soltanto il token. Chiunque può creare un token con qualsiasi header e payload, quindi il contenuto mostrato qui è costituito da dichiarazioni, non da prove. Solo il servizio che possiede la chiave di firma (o la chiave pubblica, per i token RS256 ed ES256) può dire se un token è autentico, e deve controllare anche scadenza, audience ed emittente.

È sicuro incollare qui un token?

Questa pagina non invia il token da nessuna parte: viene decodificato da codice eseguito nel tuo browser e non viene conservato. Detto questo, un token di accesso attivo è una password finché è valido. Evita di incollare token di produzione in qualsiasi sito web e preferisci token scaduti o di prova quando fai debug.

Perché non riesco a leggere alcuni token?

Un token con cinque parti invece di tre è un JWT cifrato (JWE). Il suo header è leggibile, ma il payload è cifrato e si può leggere solo con la chiave del destinatario, quindi questo strumento mostra l'header e spiega le parti. Altri errori, come un numero di parti sbagliato o un testo che non è Base64url o JSON valido, vengono segnalati indicando che cosa non va.

Come vengono calcolati gli orari?

I claim exp, nbf e iat sono NumericDate: secondi dal 1° gennaio 1970 UTC. Sono mostrati nel fuso orario del tuo dispositivo e in UTC, e confrontati con l'orologio del dispositivo per dire se il token è scaduto. Se il tuo orologio è sbagliato, lo saranno anche gli orari relativi. Un valore che sembra in millisecondi viene segnalato, perché è un errore comune.

Che cosa significano alg, typ e kid?

alg è l'algoritmo di firma, come HS256 (un segreto condiviso), RS256 o ES256 (una coppia di chiavi). typ di solito è JWT. kid è l'ID della chiave usata dall'emittente, che dice a chi verifica con quale chiave controllare la firma. Un token con alg impostato su none non è firmato e non dovrebbe mai essere accettato per nulla di importante.