Was ist ein JWT-Decoder und was macht er?
Ein JWT-Decoder ist ein spezialisiertes Entwicklertool, das dazu dient, den Inhalt eines JSON Web Tokens (JWT) zu parsen und anzuzeigen. JWTs sind ein kompaktes, URL-sicheres Mittel zur Darstellung von Claims (Ansprüchen), die zwischen zwei Parteien übertragen werden sollen. Sie werden in modernen Webanwendungen häufig zur Authentifizierung und zum Informationsaustausch verwendet.
Ein JWT besteht aus drei Teilen, die durch Punkte getrennt sind: einem Header, einer Payload und einer Signatur. Während die Signatur zur Verifizierung dient, sind der Header und die Payload lediglich Base64Url-kodiert. Unser Tool nimmt diesen kodierten String und dekodiert ihn sofort in ein lesbares JSON-Format, sodass Sie den verwendeten Algorithmus, den Aussteller, die Ablaufzeit und alle im Token eingebetteten benutzerdefinierten Claims inspizieren können.
So verwenden Sie den JWT-Decoder
Das Inspizieren Ihrer Token ist einfach und sicher:
- Token einfügen: Kopieren Sie Ihren JWT (den langen String, der mit
eyJ...beginnt) und fügen Sie ihn in das Eingabefeld ein. - Automatisches Parsing: Das Tool erkennt sofort die drei Teile und zeigt sie in separaten, farblich hervorgehobenen Blöcken an.
- Header inspizieren: Schauen Sie in den Bereich „Header“, um den Token-Typ und den Signaturalgorithmus (z. B. HS256 oder RS256) zu sehen.
- Payload inspizieren: Der Bereich „Payload“ enthält die eigentlichen Daten (Claims). Sie können die Felder
exp(Ablauf),iat(ausgestellt am) undsub(Subjekt) überprüfen. - Validierung: Beachten Sie, dass dieses Tool den Inhalt dekodiert, aber die Signatur nicht gegen einen geheimen Schlüssel verifiziert. Es dient zu Inspektions- und Debugging-Zwecken.
Die Struktur eines JWT
Ein JSON Web Token folgt einer strengen dreiteiligen Struktur:
- Header: Besteht typischerweise aus zwei Teilen: dem Typ des Tokens (JWT) und dem verwendeten Signaturalgorithmus.
- Payload: Enthält die Claims. Claims sind Aussagen über eine Entität (typischerweise den Benutzer) und zusätzliche Daten. Es gibt drei Arten von Claims: registrierte, öffentliche und private Claims.
- Signatur: Um den Signaturteil zu erstellen, nimmt man den kodierten Header, die kodierte Payload, ein Geheimnis sowie den im Header angegebenen Algorithmus und signiert dies.
Der finale JWT sieht so aus: base64UrlEncode(header) + "." + base64UrlEncode(payload) + "." + signatur
Praktisches Beispiel
Betrachten wir eine typische Payload eines Authentifizierungs-Tokens:
{
"sub": "1234567890",
"name": "Max Mustermann",
"admin": true,
"iat": 1516239022,
"exp": 1516242622
}
Durch das Dekodieren mit unserem Tool können Sie sehen:
- Die Benutzer-ID (sub) ist
1234567890. - Der Benutzer hat
admin-Berechtigungen. - Der Token wurde zu einem bestimmten Unix-Zeitstempel (iat) ausgestellt.
- Der Token läuft exakt eine Stunde nach der Ausstellung ab (exp).
Praktische Tipps für Entwickler
- Keine sensiblen Daten in den JWT: Denken Sie daran, dass JWTs normalerweise nur kodiert und nicht verschlüsselt sind. Jeder, der den Token abfängt, kann ihn dekodieren. Speichern Sie niemals Passwörter, Kreditkartennummern oder sensible personenbezogene Daten in der Payload.
- Ablauf prüfen: Überprüfen Sie auf Ihrem Server immer den
exp-Claim, um die Verwendung abgelaufener Sitzungen zu verhindern. - Algorithmus prüfen: Seien Sie vorsichtig bei Token, die den Algorithmus
noneim Header verwenden, da dies eine Sicherheitslücke darstellen kann, wenn es von Ihrer Library nicht korrekt gehandhabt wird. - Authentifizierung debuggen: Nutzen Sie dieses Tool, um schnell zu verifizieren, ob Ihr Backend die korrekten Benutzer-IDs oder Rollen sendet, bevor Sie tief in das Code-Debugging einsteigen.
Häufig gestellte Fragen
Ist es sicher, meinen JWT hier einzufügen? Ja. Unser Decoder läuft vollständig in Ihrem Browser mittels JavaScript. Ihr Token wird niemals an unseren Server gesendet oder in einer Datenbank gespeichert. Er bleibt auf Ihrem Gerät.
Warum kann ich die Signatur nicht lesen? Die Signatur ist ein binärer Hash. Obwohl wir den rohen Signatur-String anzeigen, ist er kein „lesbares“ JSON wie der Header und die Payload. Sein Zweck ist die maschinelle Verifizierung, nicht die menschliche Inspektion.
Was ist Base64Url-Kodierung? Es ist eine Variante von Base64, die + durch - und / durch _ ersetzt, um den Token sicher in URLs verwenden zu können, ohne ihn maskieren zu müssen.