Der JWT Decoder zerlegt ein JSON Web Token (JWT) im Format „header.payload.signature“ und zeigt Header und Payload als lesbares JSON an. JWTs werden häufig zur Authentifizierung in Webanwendungen und APIs eingesetzt und enthalten zwar codierte, aber nicht verschlüsselte Daten wie Nutzer-ID, Rolle oder Ablaufzeitpunkt. Füge dein Token ein, um sofort zu sehen, welche Informationen darin stecken – ganz ohne Signaturprüfung, rein zur Analyse und zum Debugging.
So funktioniert der JWT Decoder
Füge dein JWT in das Textfeld ein – der Aufbau ist header.payload.signature, getrennt durch Punkte. Der Decoder zerlegt den Text an den Punkten, wandelt Header und Payload aus Base64URL zurück in JSON um und zeigt beide als eigene Code-Blöcke an: Header und Payload.
Ist das Feld leer, erscheint der Hinweis „Bitte ein JWT einfügen.“ Fehlt der Punkt zwischen Header und Payload, meldet das Tool „Kein gültiges JWT (Format: header.payload.signature).“ Lässt sich der Inhalt trotz gültigem Aufbau nicht als JSON lesen, erscheint „Konnte das Token nicht dekodieren.“
Aufbau eines JWT
Ein JWT besteht aus drei durch Punkte getrennten Teilen: Header (Algorithmus und Tokentyp, zum Beispiel {"alg":"HS256","typ":"JWT"}), Payload (die eigentlichen Daten, sogenannte „Claims“ wie Nutzer-ID, Rolle oder Ablaufzeitpunkt) und Signatur (bestätigt mit einem geheimen Schlüssel, dass Header und Payload seit der Ausstellung unverändert sind).
Header und Payload sind nur Base64URL-codiert, nicht verschlüsselt – der Decoder ersetzt dazu - durch + und _ durch / und ergänzt fehlendes Padding mit =. Jeder, der ein Token besitzt, kann Header und Payload also lesen. Dieses Tool prüft ausschließlich diese beiden Teile und verzichtet bewusst auf eine Signaturprüfung – dafür wäre der geheime Schlüssel nötig, den nur der Aussteller kennt.
Beispiel
Das Token beginnt mit dem Header-Teil eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9, der zu {"alg":"HS256","typ":"JWT"} dekodiert wird – HMAC-SHA256 als Algorithmus. Der Payload-Teil eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFubmEgQmVpc3BpZWwiLCJyb2xlIjoiYWRtaW4iLCJpYXQiOjE3MDAwMDAwMDAsImV4cCI6MTcwMDAwMzYwMH0 ergibt {"sub":"1234567890","name":"Anna Beispiel","role":"admin","iat":1700000000,"exp":1700003600}.
Zusätzlich zu den beiden Code-Blöcken zeigt das Tool zwei Hinweise: „Ausgestellt: 14.11.2023, 22:13:20“ (aus iat) und „Läuft ab: 14.11.2023, 23:13:20 (abgelaufen)“ (aus exp) – der Ablaufzeitpunkt liegt schließlich lange vor dem heutigen Datum. Die genaue Uhrzeit richtet sich dabei nach der Zeitzone deines Geräts.
Wofür brauche ich das?
- Login- und API-Fehler debuggen: Ein Blick in den Payload zeigt, ob ein Access Token wirklich die erwarteten Felder wie Nutzer-ID oder Rolle enthält – und ob es überhaupt noch gültig ist.
- Ablaufzeit prüfen: Der Hinweis zu
expzeigt sofort, ob ein Token schon abgelaufen ist, ohne dass du den Unix-Zeitstempel selbst umrechnen musst. - Auth0, Firebase & Co. verstehen: Viele Login-Dienste stellen JWTs als Access- oder ID-Token aus – der Decoder macht sichtbar, welche Claims darin tatsächlich stecken.
- JWT-Aufbau lernen: Wer JWTs zum ersten Mal in einer eigenen Anwendung einsetzt, sieht hier direkt, wie Header und Payload eines echten Tokens aussehen.