Scegli lingua

Decodificatore JWT online

Decodifica i token JWT direttamente nel browser: leggi header e payload, verifica scadenza e algoritmo, ispeziona i claim in chiaro.

Mehmet Demiray Pubblicato Aggiornato
Condividi
Converti le affermazioni exp, iat e nbf in date leggibili

Cos'è un token JWT e come si legge

Un JWT (JSON Web Token) è un formato compatto per trasmettere informazioni firmate tra un client e un server, usato soprattutto per l'autenticazione e per le sessioni stateless. Un token è una stringa unica divisa in tre parti separate da un punto: header.payload.signature. Ogni parte è codificata in Base64Url, quindi non è cifrata ma semplicemente trasformata in testo trasportabile.

Decodificare un JWT significa riportare header e payload al loro contenuto JSON originale, così da poterli leggere. Il decodificatore lavora interamente nel browser: incolli il token, il tool separa le tre sezioni e mostra i campi in chiaro. Nessun dato viene inviato a un server, un aspetto importante quando il token contiene identificativi reali.

È utile distinguere due operazioni diverse. La decodifica rende leggibile il contenuto e chiunque possieda il token può farla. La verifica della firma, invece, conferma che il token non sia stato alterato e richiede la chiave segreta o pubblica. Questo strumento si occupa della prima parte, ideale per ispezionare e capire un token durante lo sviluppo.

Struttura: header, payload e firma

Le tre parti di un JWT hanno ruoli ben distinti. Vederle separate aiuta a capire cosa contiene davvero il token.

Parte Contenuto Esempio di campo
Header Metadati sul token alg, typ
Payload I dati veri e propri (claim) sub, exp, iat
Firma Garanzia di integrità calcolata su header e payload

L'header indica l'algoritmo di firma, ad esempio HS256 o RS256, e il tipo di token. Il payload raccoglie i claim, cioè le affermazioni sull'utente o sulla sessione. La firma viene generata combinando le prime due parti con una chiave segreta e serve solo a verificare l'integrità.

Un punto spesso frainteso: il payload non è segreto. Essendo solo codificato in Base64Url, chiunque può leggerlo. Per questo non vanno mai inseriti dati sensibili come password o numeri di carta. Il decodificatore mostra header e payload affiancati, così controlli rapidamente quale algoritmo è in uso e quali claim porta il token che stai analizzando.

I claim standard del payload

Il payload di un JWT contiene i claim, dichiarazioni in formato chiave-valore. Alcuni sono standardizzati e ricorrono nella maggior parte dei token, mentre altri sono personalizzati dall'applicazione.

I claim registrati più comuni sono:

  • iss (issuer): chi ha emesso il token
  • sub (subject): a chi o cosa si riferisce, di solito l'ID utente
  • aud (audience): per quale destinatario è valido
  • exp (expiration): istante di scadenza, in formato Unix timestamp
  • iat (issued at): quando è stato emesso
  • nbf (not before): da quando diventa valido

I campi exp, iat e nbf usano un timestamp Unix, cioè i secondi trascorsi dal 1 gennaio 1970. Sono numeri poco leggibili a occhio, perciò il decodificatore li converte automaticamente in date e orari comprensibili. In questo modo capisci subito se un token è ancora valido o se è scaduto da 3 ore.

Accanto agli standard trovi claim personalizzati come role, email o name, che dipendono dal servizio che ha generato il token.

Decodifica e verifica della firma a confronto

È fondamentale non confondere due concetti che spesso vengono trattati come uno solo.

La decodifica trasforma le sezioni Base64Url in JSON leggibile. Non richiede alcuna chiave e non dimostra nulla sull'autenticità: stai solo guardando il contenuto. Chiunque intercetti un token può decodificarlo e vederne i claim.

La verifica della firma è un'operazione crittografica. Ricalcola la firma a partire da header e payload usando l'algoritmo dichiarato e la chiave corretta, poi la confronta con quella presente nel token. Se coincidono, il token non è stato manomesso ed è stato emesso da chi possiede la chiave. Con algoritmi simmetrici come HS256 serve la stessa chiave segreta usata in fase di firma; con algoritmi asimmetrici come RS256 basta la chiave pubblica.

Questo strumento esegue la decodifica, perfetta per leggere e diagnosticare un token durante lo sviluppo o il debug di un'API. La verifica, invece, va sempre fatta lato server, dove la chiave segreta resta protetta. Affidarsi solo alla decodifica per autorizzare richieste sarebbe un grave errore di sicurezza.

Strumenti correlati per il lavoro con i token

Il decodificatore JWT si inserisce in un flusso di lavoro fatto di formati testuali e codifiche. Conoscere gli strumenti vicini ti fa risparmiare tempo durante lo sviluppo.

Dato che ogni sezione di un JWT è codificata in Base64Url, una variante del Base64, può capitare di voler trattare a mano una singola parte. In quel caso tornano utili la codifica Base64 e la decodifica Base64, che ti permettono di lavorare su stringhe arbitrarie al di fuori del contesto JWT.

Il payload di un token è puro JSON, spesso compresso su una sola riga. Quando devi leggerlo con calma o controllarne la struttura annidata, il formattatore JSON lo riorganizza con indentazione chiara e ne segnala gli errori di sintassi.

Un percorso tipico è questo:

  1. Incolli il token nel decodificatore JWT
  2. Copi il payload risultante
  3. Lo apri nel formattatore JSON per esaminarlo in dettaglio

Usare gli strumenti insieme rende molto più rapido capire cosa contiene un token e perché un'autenticazione non funziona come previsto.

Le più frequenti.

Il decodificatore verifica anche la firma del token?

No, questo strumento si limita a decodificare header e payload e a renderli leggibili. La verifica della firma è un'operazione crittografica che richiede la chiave segreta o pubblica e va eseguita lato server, dove la chiave resta protetta. La decodifica serve a ispezionare il contenuto, non a confermarne l'autenticità.

I miei token vengono inviati a un server?

No. L'intera decodifica avviene nel browser, sul tuo dispositivo. Il token che incolli non lascia mai la pagina e non viene caricato su nessun server. Questo rende sicuro analizzare anche token che contengono identificativi reali durante lo sviluppo.

Posso mettere dati sensibili nel payload di un JWT?

Meglio evitare. Il payload è solo codificato in Base64Url, non cifrato, quindi chiunque possieda il token può leggerlo in chiaro. Non vanno mai inseriti password, numeri di carta o segreti. Usa i claim per identificatori e metadati, e mantieni i dati riservati sul server.

Come faccio a sapere se un token è scaduto?

Cerca il claim exp nel payload: è un timestamp Unix che indica l'istante di scadenza. Lo strumento lo converte automaticamente in una data e un orario leggibili, così confronti subito la scadenza con il momento attuale e capisci se il token è ancora valido.

Che differenza c'è tra HS256 e RS256?

Sono due algoritmi di firma. HS256 è simmetrico: la stessa chiave segreta serve sia a firmare sia a verificare. RS256 è asimmetrico: una chiave privata firma e una chiave pubblica verifica. L'algoritmo usato è indicato nel campo alg dell'header, che il decodificatore mostra in chiaro.

Perché il token ha tre parti separate da un punto?

Un JWT è strutturato come header.payload.signature. La prima parte descrive l'algoritmo e il tipo, la seconda contiene i claim e la terza è la firma che garantisce l'integrità. Ogni sezione è codificata in Base64Url separatamente e il punto fa da delimitatore tra le tre.

Posso esaminare meglio il payload decodificato?

Sì. Dopo la decodifica puoi copiare il payload, che è JSON, e aprirlo nel formattatore JSON per ottenere un'indentazione chiara e individuare eventuali errori di struttura. È utile quando il payload contiene oggetti annidati o molti claim personalizzati.