Cos'è un Token JWT?
Un JSON Web Token (JWT) è un modo compatto e sicuro per URL di trasmettere claims tra due parti - più comunemente tra un server web e un client. I JWT sono usati ovunque nell'autenticazione web moderna: flussi OAuth 2.0, autorizzazione API, single sign-on (SSO) e gestione delle sessioni. Se hai usato qualsiasi API web moderna con autenticazione bearer token, hai usato JWT.
Un JWT assomiglia a questo: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Tre sezioni separate da punti: intestazione, payload e firma.
Le Tre Parti di un JWT
Intestazione
L'intestazione è un oggetto JSON codificato in Base64URL contenente il tipo di token (typ: "JWT") e l'algoritmo di firma (alg), come HS256 (HMAC-SHA256) o RS256 (RSA-SHA256). Decodificarla rivela come il token è firmato.
Payload (Claims)
Il payload è un oggetto JSON codificato in Base64URL contenente i claims - dichiarazioni sull'utente o l'entità. I claims standard includono: sub (subject/ID utente), iat (issued at timestamp), exp (expiration timestamp), iss (issuer) e aud (audience). I claims personalizzati possono includere ruoli utente, permessi o qualsiasi altro dato che il server vuole incorporare nel token.
Firma
La firma viene creata hashando l'intestazione e il payload codificati con una chiave segreta (per algoritmi simmetrici come HS256) o una chiave privata (per algoritmi asimmetrici come RS256). La firma permette al destinatario di verificare che il token non sia stato manomesso. Senza la chiave segreta o pubblica, non puoi verificare la firma - ma puoi comunque leggere l'intestazione e il payload.
Come Decodificare un JWT Gratuitamente con iloveimg
- Vai allo strumento - Visita /tools/jwt-decoder.
- Incolla il tuo token JWT - La stringa completa del token in tre parti.
- Clicca su Decodifica - L'intestazione e il payload vengono decodificati e visualizzati come JSON formattato.
- Ispeziona i claims - Controlla sub, exp, iat, iss e qualsiasi claim personalizzato.
- Verifica la scadenza - Il claim exp è mostrato sia come timestamp Unix che come data leggibile dall'uomo.
Cosa Rivela la Decodifica di un JWT
Decodificare un JWT (senza verifica) rivela tutti i claims incorporati nel payload. Questo è utile per il debug dei problemi di autenticazione: verificare se un token è scaduto, verificare che l'ID utente sia corretto, ispezionare i claims di ruolo o permesso e confermare che l'emittente corrisponda a quanto previsto.
Importante: I payload JWT non sono crittografati di default - sono solo codificati in Base64URL, che è banalmente reversibile. Non memorizzare mai segreti sensibili come password o chiavi private nei payload JWT.
Casi d'Uso di Debug JWT
- Errori 401 Non autorizzato - Decodifica il token per verificare se è scaduto (exp nel passato)
- Errori 403 Vietato - Controlla se il claim di ruoli o permessi corrisponde a ciò che l'API si aspetta
- Contesto utente sbagliato - Verifica che il claim sub (subject) corrisponda all'ID utente previsto
- Problemi SSO - Controlla che i claim iss (issuer) e aud (audience) corrispondano alla configurazione
- Token non accettato - Verifica che il formato del token sia tre sezioni Base64URL separate da punti
È Sicuro Decodificare un JWT Online?
Le intestazioni e i payload JWT non sono sensibili da una prospettiva di sicurezza - non sono crittografati, e chiunque intercetti il token può leggerli. La sicurezza dei JWT deriva dalla firma, che richiede la chiave segreta per essere verificata. Decodificare il payload online è sicuro. Tuttavia, evita di incollare token che contengono dati utente sensibili (cartelle cliniche, dati finanziari) in strumenti di terze parti. Il decodificatore JWT di iloveimg funziona interamente lato client - il token non lascia mai il tuo browser.
Riferimento dei Claims JWT Comuni
- sub - Subject: l'ID utente o entità che il token rappresenta
- iss - Issuer: chi ha creato e firmato il token
- aud - Audience: il destinatario previsto del token
- exp - Expiration time: timestamp Unix quando il token scade
- iat - Issued at: timestamp Unix quando il token è stato creato
- nbf - Not before: il token non è valido prima di questo timestamp
- jti - JWT ID: identificatore univoco per il token (previene attacchi replay)
Domande Frequenti
Posso verificare una firma JWT senza la chiave segreta?
No. La verifica della firma richiede la chiave segreta (HS256) o la chiave pubblica dalla coppia di chiavi (RS256/RS512). Senza queste, puoi leggere i claims ma non puoi confermare che non siano stati manomessi.
Perché il mio JWT sembra tre stringhe casuali?
Ogni sezione è codificata in Base64URL, non crittografata. Appaiono casuali ma decodificano in JSON leggibile. Usa un decodificatore come iloveimg per leggerle.
Il mio claim exp JWT mostra un numero - quando scade?
Il valore exp è un timestamp Unix - il numero di secondi dal 1 gennaio 1970 UTC. iloveimg lo converte automaticamente in una data e ora leggibile dall'uomo e ti dice se il token è già scaduto.
Quale algoritmo dovrebbe usare un JWT?
RS256 (asimmetrico) è raccomandato per le API di produzione perché la chiave di firma e la chiave di verifica sono separate. HS256 (simmetrico) è più semplice ma richiede la condivisione della chiave segreta tra firmatario e verificatore. Non usare mai l'algoritmo "none" in produzione.
Strumenti per Sviluppatori Gratuiti
- Decodificatore JWT - Decodifica e ispeziona token JWT. Funziona lato client. Gratuito.
- Decodificatore Base64 - Decodifica manualmente i segmenti Base64URL.
- Formattatore JSON - Formatta il payload JWT decodificato per la leggibilità.
Articoli Correlati
- Come Usare la Codifica e Decodifica Base64
- Guida alla Codifica e Decodifica URL
- Migliori Strumenti per Sviluppatori Gratuiti Online
Conclusione
Decodificare JWT è un compito di debug quotidiano per qualsiasi sviluppatore che lavora con l'autenticazione moderna. Il decodificatore JWT di iloveimg legge le intestazioni, decodifica i payload, converte i timestamp e funziona interamente nel tuo browser senza inviare dati ad alcun server. Tienilo aperto la prossima volta che risolvi un 401 o 403 e vedi esattamente cosa contiene il tuo token.