Anleitung
- Kopieren Sie ein Token aus einem Authorization-Header, einem Cookie oder den Entwicklertools Ihres Browsers. Ein vorangestelltes „Bearer “ wird automatisch entfernt.
- Fügen Sie es in das Feld ein. Header und Payload werden als formatiertes JSON angezeigt.
- Prüfen Sie die Statuszeile und die Claims-Tabelle auf Aussteller, Zielgruppe und Ablaufdaten in Ihrer Ortszeit.
- Kopieren Sie den Header oder Payload als JSON, wenn Sie ihn an anderer Stelle benötigen.
So funktioniert es
Ein JSON Web Token (JWT, RFC 7519) besteht in seiner üblichen signierten Form (JWS) aus drei Base64url-codierten Teilen, die durch Punkte getrennt sind. Im Header steht, mit welchem Algorithmus das Token signiert wurde, zum Beispiel HS256 (HMAC mit SHA-256) oder RS256 (RSA). Die Nutzdaten enthalten die Claims: Aussagen über den Benutzer und das Token selbst. Anhand der Signatur kann der Server prüfen, ob Header und Nutzdaten verändert wurden.
Header und Nutzdaten sind nur codiert, nicht verschlüsselt. Jeder, der ein Token besitzt, kann dessen Inhalt lesen – genau das macht dieses Tool. Speichern Sie keine Geheimnisse in JWT-Nutzdaten.
Das Decodieren beweist nichts über ein Token. Ohne den Schlüssel des Ausstellers lässt sich nicht feststellen, ob die Signatur echt ist. Verwenden Sie das Ergebnis daher niemals, um zu entscheiden, ob Sie einem Token vertrauen können. Die Überprüfung gehört auf Ihren Server und sollte mit einer aktuellen JWT-Bibliothek erfolgen, die Signatur, Algorithmus, exp, nbf, iss und aud prüft.
Die registrierten Claims werden in der Tabelle erläutert. exp, nbf und iat sind NumericDate-Werte: Sekunden seit dem 1. Januar 1970 UTC. Das Tool wandelt sie in Datumsangaben Ihrer Zeitzone um und vergleicht sie mit der Uhr Ihres Geräts. Dabei wird die kleine Zeitabweichung nicht berücksichtigt, die Server häufig wegen unterschiedlicher Uhren zulassen. Wenn Ihre Uhr falsch geht, ist auch der Status falsch.
Tokens mit fünf Teilen sind verschlüsselte JWTs (JWE). Ihre Nutzdaten lassen sich ohne den Schlüssel nicht decodieren. Das Tool meldet daher nur das Format.
Beispiele
Warum gibt meine API den Status 401 zurück?
Decodieren Sie das Access-Token, das Ihre App sendet. Lautet die Statuszeile „Abgelaufen am …“, muss der Client das Token erneuern. Wenn bei aud https://api.example.com steht, Sie aber https://api2.example.com aufrufen, stimmen die Zielgruppen nicht überein.
OpenID Connect-ID-Token prüfen
Ein ID-Token eines Anmeldeanbieters enthält iss (den Anbieter), sub (die stabile Benutzer-ID), aud (Ihre Client-ID), iat und exp sowie Profil-Claims wie E-Mail-Adresse und Name. Durch das Decodieren sehen Sie, welche Claims Ihre App tatsächlich erhält.
Einen Zeitstempel-Claim lesen
Eine Nutzlast enthält "exp": 1735689600. In der Claims-Tabelle wird der Wert als 1. Januar 2025, 00:00:00 UTC angezeigt, umgerechnet in Ihre Ortszeit. Außerdem sehen Sie, wie lange der Zeitpunkt zurückliegt oder wie weit er in der Zukunft liegt.
Häufig gestellte Fragen
Überprüft dieses Tool die JWT-Signatur?
Nein. Das Tool decodiert nur Header und Nutzdaten. Für die Überprüfung benötigen Sie das Geheimnis (bei HS256) oder den öffentlichen Schlüssel des Ausstellers (bei RS256 und ES256). Sie sollte auf Ihrem Server mit einer vertrauenswürdigen Bibliothek erfolgen.
Ist es sicher, mein Token hier einzufügen?
Das Token wird in Ihrem Browser decodiert und nirgendwohin gesendet. Trotzdem funktioniert ein gültiges Token bis zu seinem Ablauf wie ein Passwort. Verwenden Sie daher vorzugsweise abgelaufene oder Test-Tokens und fügen Sie niemals Produktions-Tokens in Tools ein, denen Sie nicht vertrauen.
Warum kann jeder den Payload lesen?
Signierte JWTs sind mit Base64url codiert, aber nicht verschlüsselt. Die Signatur schützt das Token vor Änderungen, nicht davor, gelesen zu werden. Wenn die Inhalte geheim bleiben müssen, verwenden Sie ein verschlüsseltes JWT (JWE) oder speichern Sie die Daten auf dem Server.
Was bedeutet „exp“ und in welcher Einheit wird der Wert angegeben?
exp ist der Ablaufzeitpunkt als NumericDate: ganze Sekunden (keine Millisekunden) seit dem 01.01.1970, 00:00:00 UTC. Ab diesem Zeitpunkt muss ein Token abgelehnt werden.
Warum wird „kein gültiges Base64url“ angezeigt?
Das Token wurde wahrscheinlich beim Kopieren abgeschnitten oder verändert, zum Beispiel, weil die letzten Zeichen oder Anführungszeichen verloren gingen oder es URL-kodiert wurde (%2E statt eines Punkts). Fügen Sie das unveränderte Token genau so ein, wie es ausgegeben wurde.
Datenschutz
Das Token wird mit JavaScript in Ihrem Browser decodiert. Es wird weder an einen Server gesendet noch gespeichert oder in Analysen erfasst. Es finden keine Signaturprüfung und kein Schlüsselabruf statt, daher wird keine Netzwerkanfrage gestellt.