JWT steht für JSON Web Token. Es ist ein kompaktes, URL-sicheres Token-Format, das verwendet wird, um Informationen zwischen Parteien sicher als JSON-Objekt zu übertragen. Die Informationen werden digital signiert, sodass sie verifiziert und als vertrauenswürdig eingestuft werden können. JWTs werden am häufigsten für Authentifizierung und Autorisierung in Web- und Mobile-Anwendungen eingesetzt.
Möchtest du ein JWT-Token prüfen oder dekodieren?
JWT Decoder öffnen →JWT wurde von der IETF (Internet Engineering Task Force) vorgeschlagen und im Mai 2015 als RFC 7519 standardisiert. Es wurde als Teil des umfassenderen JSON Object Signing and Encryption (JOSE)-Frameworks entwickelt. JWT wurde schnell zum dominierenden Token-Format für REST-APIs und Single-Page-Anwendungen und ersetzte in vielen Web-Kontexten schwerere XML-basierte Alternativen wie SAML-Tokens.
Ein JWT besteht aus drei Base64URL-kodierten Teilen, die durch Punkte getrennt sind: header.payload.signature.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFsaWNlIiwiaWF0IjoxNTE2MjM5MDIyfQ
.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Der Header gibt den Token-Typ und den verwendeten Signierungsalgorithmus an:
{
"alg": "HS256",
"typ": "JWT"
}
Der Payload enthält Claims — Aussagen über den Benutzer und zusätzliche Metadaten. Standardmäßige Claims sind:
sub — Subject (Benutzerkennung)iat — Issued at (Unix-Zeitstempel der Ausstellung)exp — Expiration time (Unix-Zeitstempel des Ablaufs)iss — Issuer (wer das Token erstellt hat)aud — Audience (beabsichtigte Empfänger){
"sub": "1234567890",
"name": "Alice",
"role": "admin",
"iat": 1516239022,
"exp": 1516242622
}
Die Signatur wird erstellt, indem der kodierte Header und Payload mit einem geheimen Schlüssel (oder einem privaten Schlüssel bei asymmetrischen Algorithmen) signiert werden. Sie stellt sicher, dass das Token nicht manipuliert wurde:
HMACSHA256(
base64UrlEncode(header) + "." + base64UrlEncode(payload),
secret
)
localStorage)Authorization: Bearer <token> bei jeder Anfrageexp-Ablaufzeit (15–60 Minuten sind üblich) und verwende Refresh-Tokensexp-Claim auf dem Server, bevor du einem Token vertraustalg: none — er deaktiviert die Signaturprüfung vollständighttpOnly-Cookies, nicht in localStorage, um das XSS-Risiko zu reduzierenJWT (JSON Web Token) ist ein kompaktes, URL-sicheres Token-Format, das verwendet wird, um Informationen zwischen Parteien sicher als JSON-Objekt zu übertragen. Die Informationen sind digital signiert und können daher verifiziert und als vertrauenswürdig eingestuft werden. JWTs werden am häufigsten für Authentifizierung und Autorisierung in Webanwendungen genutzt.
JWT steht für JSON Web Token. Es handelt sich um einen offenen Standard (RFC 7519), der eine kompakte und in sich geschlossene Methode zur Übertragung von Informationen zwischen Parteien als JSON-Objekt definiert.
JWT wird am häufigsten für Authentifizierung (Benutzer nach dem Login eingeloggt halten) und Autorisierung (Ressourcenzugriff steuern) eingesetzt. Es wird auch für den Informationsaustausch zwischen Microservices verwendet.
Der Payload ist nur Base64-kodiert, nicht verschlüsselt — jeder, der das Token besitzt, kann seinen Inhalt lesen. Die Signatur verhindert Manipulation, bietet aber keine Vertraulichkeit. Speichere niemals sensible Daten in einem JWT-Payload und verwende immer HTTPS.
Session-Cookies speichern nur eine Session-ID; der Server fragt eine Datenbank ab, um die Session zu finden. JWTs sind in sich geschlossen — alle Benutzerdaten befinden sich im Token, sodass keine Datenbankabfrage erforderlich ist. JWTs skalieren besser für verteilte Systeme, können aber ohne zusätzliche Infrastruktur nicht vor Ablauf invalidiert werden.
HS256 verwendet einen einzigen gemeinsamen geheimen Schlüssel für Signieren und Verifizierung. RS256 verwendet einen privaten Schlüssel zum Signieren und einen öffentlichen Schlüssel zum Verifizieren — sicherer für verteilte Systeme, in denen Verifizierer keine neuen Tokens ausstellen können sollen.