I JWT sono il formato di token di autenticazione più comune nelle applicazioni web. Ogni volta che effettui il login, un API rilascia un JSON Web Token che contiene la tua identità, i tuoi permessi e spesso dettagli personali. Quando qualcosa va storto — una sessione scaduta, una richiesta rifiutata, un collega che chiede “cosa c’è in questo token?” — il primo istinto è decodificarlo.
La maggior parte dei decodificatori JWT online funziona. La questione è se dovresti fidarti di loro con il tuo token.
Cosa c’è davvero in un JWT
Un JWT è tre stringhe codificate in base64url separate da punti:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NSIsIm5hbWUiOiJBbGljZSIsImlhdCI6MTUxNjIzOTAyMn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Decodifica le prime due parti e ottieni JSON:
// Header
{
"alg": "HS256",
"typ": "JWT"
}
// Payload
{
"sub": "12345",
"name": "Alice",
"iat": 1516239022
}
La firma è un hash crittografico che dimostra che il token è stato rilasciato da qualcuno che possiede il segreto. Chiunque può decodificare il payload — quella non è la barriera di sicurezza. La barriera è se puoi verificare la firma.
Decodificare vs verificare
Questa distinzione è importante:
- Decodificare = decodificare il JSON da base64 in modo che tu possa leggerlo. Nessun segreto richiesto. Chiunque può farlo.
- Verificare = controllare la firma rispetto a un segreto noto per confermare che il token non sia stato manomesso. Richiede il segreto.
La maggior parte dei decodificatori online solo decodificano. Ti mostrano l’header e il payload ma non ti chiedono mai il tuo segreto — perché non stanno verificando, solo visualizzando.
Per il debug (quali claims ha questo token, quando scade), la decodificazione è sufficiente. Per l’autenticazione, hai bisogno della verifica — e deve avvenire su infrastrutture che controlli.
Claims JWT standard da controllare
Quando decodifichi un JWT, cerca questi claims registrati:
| Claim | Significato | Cosa controllare |
|---|---|---|
exp |
Tempo di scadenza (timestamp Unix) | È nel futuro? |
nbf |
Non prima di (timestamp Unix) | È nel passato? |
iat |
Emesso alle (timestamp Unix) | Quanto è vecchio il token? |
iss |
Emittente | Corrisponde al tuo server di autenticazione? |
aud |
Pubblico | Corrisponde alla tua API? |
sub |
Soggetto (ID utente) | È l’utente previsto? |
La ragione più comune per cui un token “valido” fallisce: è scaduto. Controlla prima exp.
Come decodificare un JWT nel tuo browser
Non hai bisogno di uno strumento di terze parti per questo. Un JWT è solo tre stringhe base64url. Ma se preferisci non memorizzare il comando di decodifica, un decodificatore basato sul browser fa la stessa cosa senza caricare il tuo token:
- Incolla il JWT nel decodificatore
- Vedi l’header decodificato, il payload e la firma
- Controlla il claim
expper vedere se il token è scaduto - Verifica che l’algoritmo nell’header corrisponda a quello che ti aspetti
Il decodificatore JWT su DevSpeedTools funziona interamente nel tuo browser. Nessuna richiesta di rete, nessun caricamento, nessun log. Apri Strumenti di Sviluppo → Rete, incolla un token e conferma che nulla lascia la tua macchina.
Quando hai bisogno della verifica (non solo della decodificazione)
Se stai debuggando un problema di autenticazione e devi sapere se il token è valido — non solo cosa contiene — devi verificare la firma. Questo deve avvenire con lo stesso segreto o chiave pubblica che usa il tuo server di autenticazione.
Opzioni che non prevedono di incollare il tuo segreto in un sito web:
- Node.js:
jsonwebtoken.verify(token, process.env.JWT_SECRET) - Python:
jwt.decode(token, key, algorithms=['HS256']) - Go:
token, err := jwt.Parse(tokenString, keyFunc) - CLI:
jwt-cli(Rust) opyjwtcon una riga di comando
Mai incollare un segreto di produzione in uno strumento online. Il token non è un segreto. I contenuti spesso lo sono.
In sintesi
- Usa un decodificatore basato sul browser per un’ispezione rapida. Nessun caricamento, nessuna fuoriuscita.
- Usa una CLI o il tuo codice per la verifica. Mai incollare un segreto in un sito web.
- Controlla prima
exp— i token scaduti sono la causa della maggior parte dei problemi “il mio token ha smesso di funzionare.”