Kostenloser JWT-Decoder Online

JSON Web Tokens (JWT) dekodieren und inspizieren. Header, Payload und Signatur anzeigen.

0 Zeichen

Was ist ein JWT-Decoder?

Ein JWT-Decoder (JSON Web Token) ist ein Tool, das den Inhalt von JWT-Tokens dekodiert und anzeigt. JWTs werden häufig für Authentifizierung und Informationsaustausch in Webanwendungen verwendet. Dieses Tool hilft Ihnen, JWT-Inhalte zu inspizieren, ohne die Signatur zu überprüfen.

Wesentliche Anwendungen der JWT-Dekodierung

  • Debugging von Authentifizierungsproblemen: Wenn die Authentifizierung fehlschlägt oder sich unerwartet verhält, dekodieren Sie das JWT, um zu sehen, welche Claims es enthält. Prüfen Sie, ob die Benutzer-ID (sub) korrekt ist, ob Rollen/Berechtigungen vorhanden sind, ob der Ablauf (exp) überschritten wurde oder ob benutzerdefinierte Claims den Erwartungen entsprechen. Zum Beispiel, wenn ein Benutzer "Zugriff verweigert" meldet, dekodieren Sie sein JWT, um zu überprüfen, ob sein roles-Claim die erforderliche Berechtigung enthält. Dies zeigt sofort, ob das Problem die Token-Generierung (fehlende Claims) oder Autorisierungslogik (falsche Berechtigungsprüfungen) ist.
  • API-Entwicklung und -Tests: Beim Erstellen oder Testen von APIs, die JWT-Authentifizierung verwenden, dekodieren Sie Tokens, um zu überprüfen, dass die API korrekte JWTs generiert. Prüfen Sie, dass Claims korrekt formatiert sind, Ablaufzeiten angemessen sind und benutzerdefinierte Claims (Benutzer-Metadaten, Berechtigungen) enthalten sind. Tools wie Postman und Insomnia zeigen JWTs in Anfragen. Ihre Dekodierung hilft Ihnen zu verstehen, was die API tatsächlich sendet und empfängt.
  • Benutzerdefinierte Claims inspizieren: Anwendungen fügen JWTs oft benutzerdefinierte Claims hinzu: Benutzerrollen (["admin", "editor"]), Berechtigungen (["read:posts", "write:posts"]), Mandanten-ID, Feature-Flags, etc. Dekodieren Sie Tokens, um diese benutzerdefinierten Claims während der Entwicklung zu sehen. Überprüfen Sie, dass Ihr Authentifizierungsserver die richtigen Claims einschließt und dass Ihre Anwendung sie korrekt liest. Zum Beispiel dekodieren Sie, um zu prüfen, ob ein Premium-Benutzer den "premium: true"-Claim hat.
  • Token-Ablauf prüfen: JWTs enthalten einen exp (expiration) Claim als Unix-Zeitstempel. Dekodieren Sie ein Token, um zu prüfen, wann es abläuft. Konvertieren Sie den Zeitstempel in menschenlesbares Datum/Uhrzeit, um zu sehen, ob das Token noch gültig ist oder abgelaufen ist. Dies ist entscheidend beim Debugging von "Token abgelaufen"-Fehlern. Dekodieren Sie das Token, prüfen Sie den exp-Claim, vergleichen Sie mit der aktuellen Zeit. Viele Authentifizierungsprobleme sind einfach abgelaufene Tokens.

Wie funktioniert die JWT-Dekodierung?

Ein JWT besteht aus drei durch Punkte getrennten Teilen: Header, Payload und Signatur. Jeder Teil ist Base64URL-kodiert. Die Dekodierung offenbart den JSON-Inhalt in jedem Abschnitt. Hier ist der technische Prozess:

  • Schritt 1 - Token aufteilen: Die JWT-Zeichenkette wird an den zwei Punkt-Trennzeichen (.) in drei Teile aufgeteilt: Header, Payload und Signatur.
  • Schritt 2 - Header Base64URL-dekodieren: Der erste Teil wird von Base64URL dekodiert, um den JSON-Header zu offenbaren, der typischerweise den Signaturalgorithmus (alg) und den Token-Typ (typ) enthält.
  • Schritt 3 - Payload Base64URL-dekodieren: Der zweite Teil wird dekodiert, um die JSON-Payload zu offenbaren, die die Claims enthält: registrierte Claims (iss, sub, exp, iat), öffentliche Claims und private Claims.
  • Schritt 4 - Signatur extrahieren: Der dritte Teil ist die kryptografische Signatur. Die Dekodierung zeigt nur die rohen Signaturdaten; die Verifizierung erfordert den Signaturschlüssel.

Beispiel: Das JWT "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U" wird dekodiert zu Header: {"alg":"HS256"}, Payload: {"sub":"1234567890"}. Der Signaturteil wird zur Verifizierung verwendet, nicht als JSON angezeigt.

JWT: Der moderne Authentifizierungsstandard

JWT wurde als RFC 7519 2015 standardisiert, aber das Konzept entstand früher aus OAuth 2.0- und OpenID Connect-Spezifikationen. JWTs lösten ein kritisches Problem: Wie authentifiziert man Benutzer in zustandslosen APIs ohne serverseitige Sessions. Traditionelle Session-Authentifizierung erfordert das Speichern von Session-Daten auf dem Server und deren Abruf bei jeder Anfrage. JWTs drehen dieses Modell um: Alle Authentifizierungsinformationen befinden sich im Token selbst (selbst-enthaltend), was es Servern ermöglicht, Authentizität ohne Datenbank-Lookups zu verifizieren. Dies macht JWTs perfekt für Microservices, Serverless-Architekturen und verteilte Systeme. Heute werden JWTs von praktisch jedem modernen Authentifizierungssystem verwendet: Auth0, Firebase, AWS Cognito, Keycloak und unzähligen benutzerdefinierten Implementierungen.

Wichtiger Sicherheitshinweis

Die Dekodierung eines JWT zeigt seinen Inhalt, verifiziert aber nicht seine Authentizität. Verifizieren Sie JWT-Signaturen immer auf dem Server, bevor Sie Payload-Daten vertrauen. Erfahren Sie mehr über Kodierungssicherheit

JWT-Dekodierung in Programmiersprachen

Die meisten Sprachen haben JWT-Bibliotheken zum Dekodieren und Verifizieren von Tokens. Hier sind Beispiele (nur Dekodierung, ohne Verifizierung):

use Firebase\JWT\JWT;
$parts = explode('.', $token);
$payload = json_decode(JWT::urlsafeB64Decode($parts[1]));
function decodeJWT(token) {
    const parts = token.split('.');
    return JSON.parse(atob(parts[1]));
}
import jwt
decoded = jwt.decode(token, options={"verify_signature": False})
import "encoding/base64"
parts := strings.Split(token, ".")
payload, _ := base64.RawURLEncoding.DecodeString(parts[1])
import com.auth0.jwt.JWT;
DecodedJWT jwt = JWT.decode(token);
String subject = jwt.getSubject();
require 'jwt'
decoded = JWT.decode(token, nil, false)
payload = decoded[0]
var handler = new JwtSecurityTokenHandler();
var jwtToken = handler.ReadJwtToken(token);

Verwandte Tools

Base64 dekodieren? Verwenden Sie unseren Base64-Decoder.

JSON formatieren? Unser JSON Formatter verschönert JSON-Daten.

URL-Kodierung? Probieren Sie unseren URL-Encoder aus.