Was ist ein JSON Web Token (JWT)?
Ein JWT ist ein offener Standard (RFC 7519) zur sicheren Übertragung von Informationen zwischen zwei Parteien. JWTs werden vor allem für Authentifizierung und Autorisierung in Web-Anwendungen und APIs eingesetzt.
Nach einem erfolgreichen Login erhält der Nutzer ein JWT, das bei jeder weiteren Anfrage mitgesendet wird. Der Server kann das Token verifizieren, ohne eine Datenbankabfrage zu machen – das macht JWTs besonders effizient.
Aufbau eines JWT
Ein JWT besteht aus drei Teilen, getrennt durch Punkte (xxxxx.yyyyy.zzzzz):
Header: Enthält den Token-Typ („JWT") und den Signatur- Algorithmus (z.B. HS256, RS256). Base64Url-kodiert.
Payload: Enthält die eigentlichen Daten – sogenannte „Claims". Das können Standard-Claims (exp, sub, iss) oder eigene Daten (User-ID, Rollen, Name) sein. Ebenfalls Base64Url-kodiert.
Signature: Wird aus Header + Payload + Secret erstellt. Ermöglicht die Verifizierung, dass das Token nicht manipuliert wurde.
Wichtige JWT Claims
iss (Issuer): Wer hat das Token ausgestellt?sub (Subject): Für wen gilt das Token? (meist User-ID).aud (Audience): Für welche Anwendung ist es bestimmt?
exp (Expiration): Wann läuft das Token ab? (Unix-Timestamp).iat (Issued At): Wann wurde es erstellt?nbf (Not Before): Ab wann ist es gültig?
Sicherheit: Was du wissen musst
Wichtig: Header und Payload sind nur Base64-kodiert,nicht verschlüsselt! Jeder kann den Inhalt lesen – auch böswillige Akteure. Speichere niemals sensible Daten wie Passwörter im Payload.
Die Signatur verhindert nur Manipulation, nicht das Auslesen. Für verschlüsselte Tokens gibt es JWE (JSON Web Encryption), aber das ist ein anderer Standard.
Typische Verwendung
API-Authentifizierung: Nach Login wird das JWT im Authorization-Header (Bearer Token) bei jeder Anfrage mitgesendet.Single Sign-On (SSO): Ein Token für mehrere Anwendungen.OAuth 2.0: Access Tokens sind häufig JWTs.Microservices: Sichere Service-zu-Service-Kommunikation.
Lokale Verarbeitung
Alle JWT-Dekodierungen erfolgen lokal in deinem Browser. Deine Tokens werden nicht an einen Server gesendet – wichtig, da Tokens oft sensible Session-Informationen enthalten. Ideal zum Debuggen während der Entwicklung.