Un JWT ha tre parti codificate in Base64url separate da punti: header (algoritmo), payload (claim come sub, exp, aud) e firma. Il contenuto è codificato, non cifrato: chiunque può leggerlo. La firma garantisce solo che non sia stato modificato.
Chi lo riceve verifica la firma con la chiave pubblica dell'emittente (in OIDC dall'endpoint JWKS), più la scadenza exp, l'emittente iss e l'audience aud.
Errori tipici: token a lunga durata impossibili da revocare, dati sensibili nel payload e librerie che accettano l'algoritmo none. Se i token vengono rifiutati, controlla l'orologio del server.
Esempio
cut -d. -f2 token.txt | base64 -d 2>/dev/null