JWT-Decoder

JSON Web Tokens dekodieren und Inhalt anzeigen.

Header

Payload

Diese Dekodierung liest nur die Base64-kodierten Inhalte aus und prüft nicht die Signatur. Ein dekodierbares Token ist nicht automatisch gültig oder unverändert.

Wie ist ein JWT aufgebaut?

Ein JSON Web Token besteht aus drei durch Punkte getrennten Teilen: Header (Algorithmus/Typ), Payload (die eigentlichen Daten/Claims) und Signatur. Header und Payload sind Base64Url-kodiertes JSON und lassen sich ohne Schlüssel lesen.

Beispiel

Ein Token wie "eyJhbGc….eyJzdWI….signatur" wird an den Punkten getrennt, die ersten beiden Teile werden dekodiert und als lesbares JSON angezeigt.

Zweites Beispiel

Ein Login schlägt fehl, obwohl der Nutzer sich kurz zuvor erfolgreich angemeldet hat. Kopierst du das Access-Token aus dem Authorization-Header der fehlgeschlagenen Anfrage hier hinein, siehst du im Payload üblicherweise ein Feld exp mit einem Unix-Zeitstempel. Liegt dieser Zeitpunkt in der Vergangenheit, ist die Ursache oft simpel: Das Token ist schlicht abgelaufen, statt dass ein Berechtigungsproblem vorliegt.

Wann brauchst du den JWT-Decoder?

  • Beim Debuggen einer fehlschlagenden API-Anfrage prüfen, welche Claims (z. B. sub, role, exp) ein Access-Token tatsächlich enthält.
  • Vor dem Schreiben von serverseitigem Verifizierungscode nachsehen, welchen Algorithmus (alg-Feld im Header) ein Token verwendet.
  • Ein ID-Token aus einem OpenID-Connect-Login-Flow inspizieren, um zu prüfen, ob die erwarteten Nutzerdaten enthalten sind.
  • Schnell nachvollziehen, wann ein selbst ausgestelltes Token abläuft, ohne den Payload manuell per Hand zu dekodieren.

Gut zu wissen: Ein JWT ist standardmäßig nicht verschlüsselt, sondern lediglich Base64Url-kodiert – jeder mit Zugriff auf das Token kann Header und Payload lesen, unabhängig davon, ob die Signatur gültig ist. Vertrauliche Daten (Passwörter, vollständige Kreditkartennummern) gehören deshalb grundsätzlich nicht in den Payload. Das im Header hinterlegte alg-Feld gibt lediglich an, mit welchem Verfahren die Signatur erzeugt wurde – ändert man Header oder Payload eines Tokens von Hand, wird die Signatur ungültig und ein korrekt implementierter Server lehnt das Token ab.

Häufige Fragen

Wird die Signatur geprüft?

Nein, dieses Tool liest nur die Base64-kodierten Inhalte aus. Ob die Signatur gültig ist und das Token vom erwarteten Server stammt, wird nicht überprüft.

Kann jeder ein JWT lesen?

Ja, Header und Payload sind nur kodiert, nicht verschlüsselt – jeder mit Zugriff auf das Token kann den Inhalt auslesen. Sensible Daten sollten daher nicht unverschlüsselt im Payload stehen.

Was bedeutet das Feld "exp" im Payload?

"exp" steht für "expiration" und enthält einen Unix-Zeitstempel (Sekunden seit dem 1. Januar 1970), ab dem das Token als abgelaufen gilt – ein häufiger Grund für scheinbar grundlose Anmeldefehler.

Darf ich anhand der dekodierten Daten allein eine Anfrage autorisieren?

Nein, da die Signatur hier nicht geprüft wird, könnte der Inhalt manipuliert worden sein. Für echte Autorisierungsentscheidungen muss die Signatur serverseitig mit dem passenden Schlüssel verifiziert werden.

Werden meine Token irgendwohin übertragen?

Nein, die Dekodierung erfolgt vollständig lokal im Browser.