Decodifica JSON Web Token
Un JSON Web Token (JWT) è una stringa compatta usata per trasmettere informazioni su identità e permessi tra sistemi, il più delle volte come header Authorization: Bearer dopo il login. Sembra un testo casuale, ma è composto da tre parti codificate in Base64URL: un header, un payload di claim e una signature. Questo decoder JWT divide il token, decodifica le prime due parti in JSON leggibile e spiega i claim più importanti. La decodifica e la verifica avvengono localmente, quindi il tuo token non viene mai trasmesso.
Funzionalità
- Header e payload decodificati e ben formattati, ciascuno con un pulsante di copia.
- Spiegazione dei claim temporali:
iat,nbf,expeauth_timeconvertiti da secondi epoch a date nel tuo fuso orario. - Controllo della scadenza che ti dice a colpo d'occhio se il token è scaduto o non ancora attivo.
- Verifica della firma HMAC per HS256, HS384 e HS512 utilizzando la Web Crypto API del tuo browser.
- Funziona offline dopo il caricamento della pagina; nessun dato viene inviato all'esterno.
Quando usarlo
Debug dell'autenticazione. Quando una richiesta fallisce con errore 401 Unauthorized, decodifica il token per verificare se è scaduto, se è stato emesso per l'audience corretta (aud) o se contiene i ruoli e gli scope previsti.
Sviluppo e test di API. Verifica che il tuo server inserisca nel token i claim desiderati, con i tempi di scadenza corretti, prima del rilascio.
Imparare come funzionano OAuth e OpenID Connect. Gli ID token e gli access token dei provider di identità sono spesso JWT. Decodificare un token di test mostra quali informazioni il provider condivide su un utente.
Anatomia di un JWT
header.payload.signature
- Header — il tipo di token e l'algoritmo di firma, ad esempio
{"alg":"HS256","typ":"JWT"}. - Payload — i claim. I claim registrati includono
iss(emittente),sub(soggetto, di solito l'ID utente),aud(destinatari),exp,nbf,iatejti(ID del token). Le app aggiungono claim personalizzati comenameorole. - Signature — creata firmando
header.payloadcon un segreto (HMAC) o una chiave privata (RSA, ECDSA, EdDSA). Se qualcuno modifica anche un solo carattere dell'header o del payload, la firma non corrisponde più.
Poiché il payload è solo codificato, non inserire mai segreti come le password in un JWT. Per decodificare altri dati in Base64, usa il tool Base64; per ispezionare qualsiasi timestamp, usa il Convertitore di Timestamp Unix.