Ein JWT besteht aus drei Base64url-kodierten Teilen, getrennt durch Punkte: Header (Algorithmus), Payload (Claims wie sub, exp, aud) und Signatur. Der Inhalt ist nur kodiert, nicht verschlüsselt; jeder kann ihn lesen. Gesichert ist nur, dass er nicht verändert wurde.
Der Empfänger prüft die Signatur mit dem öffentlichen Schlüssel des Ausstellers (bei OIDC aus dem JWKS-Endpunkt), dazu Ablaufzeit exp, Aussteller iss und Zielgruppe aud.
Typische Fehler: Tokens mit langer Laufzeit, die sich nicht widerrufen lassen, sensible Daten in der Payload, und Bibliotheken, die den Algorithmus none akzeptieren. Bei Ablehnungen lohnt sich ein Blick auf die Uhrzeit des Servers.
Beispiel
cut -d. -f2 token.txt | base64 -d 2>/dev/null