Skip to main content
Zum Hauptinhalt springen
Entwicklung28. Februar 2026 6 Min. Lesezeit

JWT-Token-Debugging

Ein praktischer Leitfaden zum Debuggen von JWT-Authentifizierungsproblemen, Dekodieren von Tokens und Verstehen häufiger Fallstricke, mit denen Entwickler konfrontiert werden.

Debuggen Sie JWT-Tokens sofort mit unserem JWT-Dekodierer. Inspizieren Sie Header, Payloads und Signaturen, ohne Daten an Server zu senden.

Die mysteriöse Fehlermeldung

Ihre API gibt 'Ungültiges Token' zurück. Das war's. Keine Details. Keine Hinweise. Nur 'Ungültiges Token'.

Sie überprüfen das Token. Es sieht korrekt aus. Sie überprüfen die Ablaufzeit. Immer noch gültig. Sie überprüfen die Signatur... warte, welcher Schlüssel wurde verwendet, um dies zu signieren?

JWT-Debugging ist berüchtigt undurchsichtig. Fehlermeldungen sind aus Sicherheitsgründen vage. Aber das macht das Debugging zum Albtraum. Hier ist, wie Sie systematisch jedes JWT-Problem debuggen können.

JWT-Anatomie: Drei Teile

Ein JWT sieht so aus: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U

Es hat drei durch Punkte getrennte Teile: header.payload.signature. Jeder Teil ist Base64Url-kodiert.

Der Header enthält Metadaten wie den Algorithmus (alg) und Tokentyp. Das Payload enthält Ansprüche wie Benutzer-ID (sub), Ablaufzeit (exp) und Aussteller (iss). Die Signatur beweist, dass das Token nicht manipuliert wurde.

Die JWT-Debugging-Checkliste

Wenn ein JWT fehlschlägt, gehen Sie diese Checkliste systematisch durch:

  • Ablaufzeit prüfen (exp) - Ist das Token noch gültig? Unix-Zeitstempel mit aktueller Zeit vergleichen
  • Algorithmus verifizieren (alg) - Entspricht es dem, was Ihr Verifizierer erwartet? Auf 'none'-Algorithmus-Angriffe achten
  • Aussteller validieren (iss) - Ist das Token aus der erwarteten Quelle?
  • Zielgruppe prüfen (aud) - Ist das Token für Ihren Dienst bestimmt?
  • Signatur verifizieren - Haben Sie den richtigen geheimen Schlüssel oder öffentlichen Schlüssel?

Häufige JWT-Fehler

Hier sind die häufigsten JWT-Probleme und wie man sie behebt:

  • 'Invalid signature' – Der Schlüssel stimmt nicht. Verifizieren Sie, dass Sie den richtigen geheimen Schlüssel für HS256 oder das richtige öffentliche Zertifikat für RS256 haben.
  • 'Token expired' – Das Token ist abgelaufen. Prüfen Sie die exp-Zeit und den Uhrenabgleich zwischen Aussteller und Empfänger.
  • 'No 'kid' header' – Der Header enthält keinen Schlüssel-Identifier. Fragen Sie den Token-Aussteller nach dem richtigen Schlüssel.
  • 'Algorithm mismatch' – Das Token verwendet einen anderen Algorithmus als erwartet. HS256 und RS256 sind nicht austauschbar.

JWT-Best-Practices

Verwenden Sie JWTs sicher mit diesen Best Practices:

  • Niemals 'none' als Algorithmus akzeptieren - Dies ermöglicht es Angreifern, Tokens zu fälschen
  • Immer Ablaufzeiten setzen - Fügen Sie exp-Ansprüche hinzu, um die Gültigkeitsdauer zu begrenzen
  • Aussteller und Zielgruppe validieren - Prüfen Sie iss und aud-Ansprüche gegen erwartete Werte
  • Sensible Daten im Payload vermeiden - Es ist Base64-kodiert, nicht verschlüsselt
  • Kurze Gültigkeitsdauer für Access Tokens verwenden - 15 Minuten sind typisch
  • Refresh Tokens für verlängerte Sitzungen verwenden - Access Tokens sollten kurzlebig sein

JWT in der Praxis

So arbeiten Sie mit JWTs in verschiedenen Programmiersprachen:

Node.js (jsonwebtoken)

const jwt = require('jsonwebtoken');
// Token verifizieren
const decoded = jwt.verify(token, secretKey);
console.log(decoded.sub); // Benutzer-ID
console.log(decoded.exp); // Ablaufzeit

Python (PyJWT)

import jwt
# Token verifizieren
decoded = jwt.decode(token, secret_key, algorithms=['HS256'])
print(decoded['sub']) # Benutzer-ID
print(decoded['exp']) # Ablaufzeit

FAQ

Q.Kann ich JWTs dekodieren, ohne sie zu verifizieren?

A.Ja! Header und Payload sind nur Base64Url-kodiert, nicht verschlüsselt. Jeder kann sie lesen. Deshalb sollten Sie keine sensiblen Daten wie Passwörter im Payload speichern. Verwenden Sie unseren JWT-Dekodierer, um Header und Payload zu inspizieren.

Q.Was ist der Unterschied zwischen Signatur und Verschlüsselung?

A.Eine Signatur (HS256, RS256) beweist, dass das Token vom angegebenen Aussteller stammt und nicht manipuliert wurde. Eine Verschlüsselung (JWE) verbirgt den Inhalt des Tokens. Die meisten JWTs sind nur signiert, nicht verschlüsselt.

Q.Wo sollte ich JWTs speichern?

A.Speichern Sie JWTs niemals in localStorage ( anfällig für XSS). HTTPOnly Cookies sind sicherer für Web-Apps. Für SPAs consider using memory storage with secure cookie fallback.

JWTToken-DebuggingAuthentifizierungJWT-DekodiererEntwicklertools