Debugger / decodificatore JWT

Incolli qualsiasi JWT per decodificarne le tre parti separate da punti — intestazione, payload e firma in base64url sono mostrati come JSON formattato, con i claim registrati (exp, iat, nbf e simili) convertiti nell'ora locale. Può poi verificare la firma con l'API WebCrypto: HMAC (HS256/384/512) con un segreto, oppure RSA/ECDSA (RS256/384/512, ES256/384/512) con una chiave pubblica PEM; un token HS256 di esempio è a un clic di distanza per fare delle prove. Tutto viene eseguito localmente — token, segreti e chiavi non vengono mai inviati da nessuna parte.
Token JWT Formato: intestazione.payload.firma (tre segmenti base64url).
Attenzione: questo token dichiara alg:none, il che significa che non è firmato. I servizi reali devono rifiutare i token non firmati — lo consideri non attendibile.
ClaimValoreInterpretazione
Segreto
crypto.subtle non è disponibile in questo contesto, quindi la verifica della firma è disabilitata. Apra la pagina tramite https: oppure da un file locale per abilitarla. La decodifica funziona comunque.
Come leggere il risultato: l'intestazione di solito contiene alg (l'algoritmo di firma) e typ. I claim registrati mostrati con la conversione all'ora locale sono iat (emesso il), nbf (non prima di) e exp (scadenza) — un badge rosso indica che il token è scaduto, ambra indica che scade entro 24 ore. La verifica della firma calcola lo stesso MAC che calcolerebbe l'emittente, oppure controlla la chiave pubblica RSA/ECDSA che incolla, poi contrassegna il token come VALIDO o NON VALIDO. Si possono verificare solo gli algoritmi implementati dal livello WebCrypto del browser; tutti gli altri vengono segnalati come non supportati invece di essere indovinati.

Claim registrati comuni: sub (soggetto) è l'utente o l'entità a cui si riferisce il token — nel suo esempio è solo un ID numerico, ma spesso i servizi vi inseriscono un'email, un nome utente o un UUID. iss indica l'emittente, aud indica il destinatario previsto, e jti è un ID univoco del token usato per impedire il replay. Questi claim non sono cifrati: chiunque possieda il token può leggerli, quindi non inserisca mai password o segreti nel payload di un JWT.

Riservatezza: decodifica e verifica avvengono interamente in questa pagina con l'API WebCrypto — il token, il suo segreto e qualsiasi chiave pubblica non vengono mai trasmessi. Per un token alg:none la pagina mostra un avviso chiaro: un'API reale non dovrebbe mai accettare token non firmati.