JWT (JSON Web Token) ist ein offener Standard (RFC 7519) für die sichere Übertragung von Informationen zwischen Parteien in Form eines JSON-Objekts. JWT wird häufig zur Authentifizierung in modernen Webanwendungen verwendet.
JWT-Struktur
JWT besteht aus drei durch Punkte getrennten Teilen:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U
1. Kopfzeile (Kopfzeile)
{"alg": "HS256", "typ": "JWT"}
Definiert den Signaturalgorithmus und den Token-Typ.
2. Nutzlast
{"sub": "1234567890", "name": "John Doe", "iat": 1516239022, "exp": 1516242622}
Enthält Ansprüche – Benutzerdaten und Token-Metadaten.
3. Unterschrift (Signatur)
Garantiert die Integrität des Tokens. Für HS256:
HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
So funktioniert die JWT-Authentifizierung
- Benutzer sendet Login und Passwort
- Der Server validiert die Daten und erstellt ein JWT
- Client speichert Token (localStorage, Cookie)
- Bei jeder Anfrage sendet der Client:
Authorization: Bearer <token> - Der Server überprüft die Signatur und extrahiert Daten aus der Nutzlast
JWT-Debugger
Verwenden Sie JWT Debugger Xuvero, um Token zu dekodieren und zu analysieren.
JWT-Sicherheit
- Speichern Sie Token in httpOnly-Cookies, nicht in localStorage
- Stellen Sie eine kurze Dauer ein (15–30 Minuten)
- Aktualisierungstoken zum Aktualisieren verwenden
- Niemals speichernsensible Daten in Nutzlast
- Überprüfen Sie
algauf dem Server – Schutz vor „alg: none“-Angriff