TanodTools
DE

JWT-Decoder

Fügen Sie ein JSON Web Token ein, um Header und Payload zu lesen, mit Ablauf- und Ausstellungszeit als echtem Datum.

Läuft vollständig in Ihrem Browser

Tokens bis 1 MB. Nur Dekodierung: Die Signatur wird angezeigt, aber nicht geprüft.

So dekodieren Sie ein JWT

  1. Fügen Sie das Token in das Feld ein. Ein vorangestelltes Bearer sowie umgebende Leerzeichen oder Anführungszeichen werden ignoriert.
  2. Lesen Sie unten Header und Payload sowie die Zeiten für Ablauf, Nicht-vor und Ausstellung in Ihrer Zeitzone und in UTC.
  3. Kopieren Sie den dekodierten Payload oder Header als formatiertes JSON, wenn Sie ihn woanders brauchen.

Was in einem JSON Web Token steckt

Ein signiertes JWT besteht aus drei Stücken Base64url-Text, verbunden durch Punkte: Header, Payload und Signatur. Header und Payload sind einfach JSON in Base64url, deshalb kann jeder sie dekodieren und lesen. Base64url ist eine Kodierung, keine Verschlüsselung; legen Sie also niemals Geheimnisse in den Payload eines JWT, es sei denn, das Token ist verschlüsselt.

Der Payload enthält Claims. Einige Namen sind registriert: iss (wer das Token ausgestellt hat), sub (um wen es geht), aud (für wen es bestimmt ist), exp (wann es abläuft), nbf (nicht gültig vor), iat (wann es ausgestellt wurde) und jti (eine eindeutige ID). Dienste ergänzen eigene Claims, etwa Rollen, Scopes oder eine E-Mail-Adresse.

Erst die Signatur macht die Claims vertrauenswürdig, und um sie zu prüfen, braucht man den Signaturschlüssel, den nur der Aussteller und die Dienste besitzen sollten, die das Token akzeptieren. Dieser Decoder hört bewusst beim Lesen auf: Er zeigt, was ein Token aussagt und wann es abläuft, und genau das brauchen Sie meist, wenn Sie einen Login oder einen API-Aufruf debuggen.

Tipps

Häufige Fragen

Prüft das Tool die Signatur?

Nein. Diese Seite dekodiert das Token nur. Jeder kann ein Token mit beliebigem Header und Payload erzeugen, die hier angezeigten Inhalte sind also Behauptungen, kein Beweis. Nur der Dienst, der den Signaturschlüssel besitzt (oder bei RS256- und ES256-Tokens den öffentlichen Schlüssel), kann feststellen, ob ein Token echt ist, und er muss außerdem Ablaufzeit, Zielgruppe und Aussteller prüfen.

Ist es sicher, ein Token hier einzufügen?

Diese Seite sendet das Token nirgendwohin: Es wird von Code dekodiert, der in Ihrem Browser läuft, und nicht gespeichert. Trotzdem ist ein gültiges Zugriffstoken ein Passwort, solange es gilt. Fügen Sie Produktions-Tokens möglichst in keine Website ein und verwenden Sie beim Debuggen lieber abgelaufene oder Test-Tokens.

Warum kann ich manche Tokens nicht lesen?

Ein Token mit fünf statt drei Teilen ist ein verschlüsseltes JWT (JWE). Sein Header ist lesbar, aber der Payload ist verschlüsselt und lässt sich nur mit dem Schlüssel des Empfängers lesen; dieses Tool zeigt daher den Header und erklärt die Teile. Andere Fehler, etwa eine falsche Anzahl von Teilen oder Text, der kein gültiges Base64url oder JSON ist, werden mit einer Beschreibung des Problems gemeldet.

Wie werden die Zeiten berechnet?

Die Claims exp, nbf und iat sind NumericDates: Sekunden seit dem 1. Januar 1970 UTC. Sie werden in der Zeitzone Ihres Geräts und in UTC angezeigt und mit der Uhr Ihres Geräts verglichen, um zu sagen, ob das Token abgelaufen ist. Geht Ihre Uhr falsch, stimmen auch die relativen Zeiten nicht. Ein Wert, der nach Millisekunden aussieht, wird markiert, weil das ein häufiger Fehler ist.

Was bedeuten alg, typ und kid?

alg ist der Signaturalgorithmus, etwa HS256 (ein gemeinsames Geheimnis), RS256 oder ES256 (ein Schlüsselpaar). typ ist meist JWT. kid ist die Schlüssel-ID, die der Aussteller verwendet hat; sie sagt einem Prüfer, mit welchem Schlüssel die Signatur zu prüfen ist. Ein Token mit alg gleich none ist nicht signiert und sollte für nichts Wichtiges akzeptiert werden.