JWTs sind das häufigste Authentifizierungs-Token-Format in Webanwendungen. Bei jeder Anmeldung stellt eine API ein JSON Web Token aus, das Ihre Identität, Berechtigungen und oft persönliche Daten enthält. Wenn etwas schiefgeht — eine abgelaufene Sitzung, eine abgelehnte Anfrage, ein Teamkollege, der fragt „Was ist in diesem Token?” — ist der erste Instinkt, es zu decodieren.
Die meisten Online-JWT-Decodierer funktionieren. Die Frage ist, ob Sie ihnen mit Ihrem Token vertrauen sollten.
Was tatsächlich in einem JWT steckt
Ein JWT sind drei base64url-kodierte Strings, die durch Punkte getrennt sind:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NSIsIm5hbWUiOiJBbGljZSIsImlhdCI6MTUxNjIzOTAyMn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Decodieren Sie die ersten beiden Teile und Sie erhalten JSON:
// Header
{
"alg": "HS256",
"typ": "JWT"
}
// Payload
{
"sub": "12345",
"name": "Alice",
"iat": 1516239022
}
Die Signatur ist ein kryptografischer Hash, der beweist, dass das Token von jemandem mit dem Geheimnis ausgestellt wurde. Jeder kann den Payload decodieren — das ist nicht die Sicherheitsgrenze. Die Grenze ist, ob Sie die Signatur verifizieren können.
Decodieren vs. Verifizieren
Dieser Unterschied ist wichtig:
- Decodieren = JSON base64-decodieren, damit Sie ihn lesen können. Kein Geheimnis erforderlich. Jeder kann es tun.
- Verifizieren = Die Signatur gegen ein bekanntes Geheimnis prüfen, um zu bestätigen, dass das Token nicht manipuliert wurde. Erfordert das Geheimnis.
Die meisten Online-Decodierer decodieren nur. Sie zeigen Ihnen den Header und Payload, fragen aber nie nach Ihrem Geheimnis — weil sie nicht verifizieren, sondern nur anzeigen.
Für das Debugging (Welche Claims hat dieses Token, wann läuft es ab?) reicht Decodieren. Für die Authentifizierung benötigen Sie Verifizierung — und sie muss auf einer Infrastruktur stattfinden, die Sie kontrollieren.
Zu prüfende Standard-JWT-Claims
Wenn Sie ein JWT decodieren, achten Sie auf diese registrierten Claims:
| Claim | Bedeutung | Was zu prüfen ist |
|---|---|---|
exp |
Ablaufzeit (Unix-Zeitstempel) | Liegt sie in der Zukunft? |
nbf |
Nicht vor (Unix-Zeitstempel) | Liegt sie in der Vergangenheit? |
iat |
Ausgestellt am (Unix-Zeitstempel) | Wie alt ist das Token? |
iss |
Aussteller | Stimmt es mit Ihrem Auth-Server überein? |
aud |
Zielgruppe | Stimmt es mit Ihrer API überein? |
sub |
Subjekt (Benutzer-ID) | Ist es der erwartete Benutzer? |
Der häufigste Grund, warum ein „gültiges” Token fehlschlägt: Es ist abgelaufen. Überprüfen Sie zuerst exp.
Wie man ein JWT im Browser decodieren
Sie benötigen dafür kein Drittanbieter-Tool. Ein JWT sind einfach drei base64url-Strings. Aber wenn Sie den Decode-Befehl nicht auswendig lernen möchten, macht ein browserbasierter Decoder dasselbe, ohne Ihr Token hochzuladen:
- Fügen Sie den JWT in den Decoder ein
- Sehen Sie den decodierten Header, Payload und Signatur
- Überprüfen Sie den
exp-Claim, um zu sehen, ob das Token abgelaufen ist - Überprüfen Sie, ob der Algorithmus im Header mit Ihren Erwartungen übereinstimmt
Der JWT-Decoder auf DevSpeedTools läuft vollständig in Ihrem Browser. Keine Netzwerkanfrage, kein Upload, kein Log. Öffnen Sie DevTools → Netzwerk, fügen Sie ein Token ein und bestätigen Sie, dass nichts Ihr Gerät verlässt.
Wann Sie Verifizierung benötigen (nicht nur Decodierung)
Wenn Sie ein Auth-Problem debuggen und wissen müssen, ob das Token gültig ist — nicht nur, was es enthält — müssen Sie die Signatur verifizieren. Das muss mit demselben Geheimnis oder öffentlichen Schlüssel geschehen, den Ihr Auth-Server verwendet.
Optionen, die nicht das Einfügen Ihres Geheimnisses in eine Website beinhalten:
- Node.js:
jsonwebtoken.verify(token, process.env.JWT_SECRET) - Python:
jwt.decode(token, key, algorithms=['HS256']) - Go:
token, err := jwt.Parse(tokenString, keyFunc) - CLI:
jwt-cli(Rust) oderpyjwtmit einem Einzeiler
Fügen Sie niemals ein Produktionsgeheimnis in ein Online-Tool ein. Das Token ist kein Geheimnis. Der Inhalt ist es oft schon.
Die Zusammenfassung
- Verwenden Sie einen browserbasierten Decoder zur schnellen Inspektion. Kein Upload, kein Leak.
- Verwenden Sie eine CLI oder Ihren eigenen Code zur Verifizieren. Fügen Sie niemals ein Geheimnis in eine Website ein.
- Überprüfen Sie zuerst
exp— abgelaufene Tokens sind die Ursache für die meisten „Mein Token funktioniert nicht mehr”-Probleme.