nicetool.dev logo

Cos'è un JWT?

Il JSON Web Token (JWT) è uno standard aperto (RFC 7519) che definisce un modo compatto e autonomo per trasmettere in modo sicuro informazioni tra le parti come oggetto JSON. Queste informazioni possono essere verificate e attendibili perché firmate digitalmente.

Struttura JWT

Un JWT è una stringa composta da tre parti codificate in Base64URL: Header (Algoritmo e Tipo), Payload (Dati/Claim) e Firma. Queste parti sono concatenate con separatore punto (.):

header.payload.signature

Casi d'uso comuni

  • Autorizzazione: Lo scenario più comune. Una volta effettuato l'accesso, ogni richiesta successiva includerà il JWT, consentendo all'utente di accedere a rotte, servizi e risorse.
  • Scambio di informazioni: I JWT sono ottimi per trasmettere in modo sicuro informazioni tra le parti.
  • Sessioni Stateless: Non c'è bisogno di tenere i dati della sessione sul server; il token contiene tutte le info utente necessarie.

Privacy e Sicurezza

La tua sicurezza è la nostra priorità. Tutta la logica di decodifica e verifica dei JWT avviene lato client nel tuo browser JavaScript. Nessun token, header o payload viene mai inviato ai nostri server.

100% basato su browser

Come usare: Debugger JWT

  1. 1

    Incolla un token (inizia con eyJ) nel campo Encoded. Header e payload vengono decodificati subito e mostrati come JSON formattato.

  2. 2

    Controlla i claim standard. Tempi come exp, iat e nbf sono mostrati come date leggibili, così vedi subito se il token è scaduto o non ancora valido.

  3. 3

    Per verificare la firma inserisci il segreto HMAC (HS256/384/512) o la chiave pubblica in formato PEM (RS256/384/512, ES256/384/512). Lo strumento indica se la firma corrisponde.

  4. 4

    Passa alla modalità Generator per creare un token di test: modifica il payload, scegli l'algoritmo, inserisci un segreto o una chiave privata e copia il JWT firmato.

Esempi pratici

Debug degli errori 401

Una API rifiuta la richiesta con 401 Unauthorized. Decodifica il token per trovare un exp scaduto, un aud errato o un claim scope mancante.

Controllare i token degli identity provider

Esamina gli ID token di Auth0, Keycloak, Firebase o Azure AD per vedere quali claim (email, roles, groups) riceve davvero la tua applicazione.

Testare i controlli per ruolo

Genera token con role "admin" e role "viewer" firmati con il segreto di sviluppo per testare entrambi i rami di un controllo dei permessi.

Verificare la rotazione delle chiavi

Dopo la rotazione incolla un token nuovo e la nuova chiave pubblica per confermare che il kid nell'header e la firma corrispondano alla nuova chiave.

Domande frequenti

Un JWT è cifrato?+

Di solito no. Un JWT standard (JWS) è solo codificato in Base64URL e firmato. Chiunque può leggere il payload, quindi non metterci mai password o dati personali sensibili. I token cifrati (JWE) sono un formato diverso.

Cosa significano le tre parti?+

header.payload.signature: l'header indica algoritmo e tipo, il payload contiene i claim e la firma dimostra che le prime due parti sono state create da chi possiede la chiave e non sono state modificate.

È sicuro incollare un token di produzione?+

Decodifica e verifica avvengono interamente nel browser e nulla viene inviato al nostro server. Un token valido però funziona come una password finché non scade: preferisci token di test o revoca quelli reali dopo il debug.

Meglio HS256 o RS256?+

HS256 usa un unico segreto condiviso per firmare e verificare, semplice con un solo servizio. RS256 ed ES256 firmano con chiave privata e verificano con chiave pubblica, ideale quando molti servizi verificano token di un'unica autorità.