Development

JWT-Tokens: Was sie sind und wie man sie verwendet

X Xuvero Team 6 März 2026 5 Min. Lesezeit 645 Aufrufe
JWT-Tokens: Was sie sind und wie man sie verwendet

JSON Web Token (JWT) 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 und Autorisierung in modernen Webanwendungen und APIs verwendet. In diesem Artikel werfen wir einen detaillierten Blick darauf, wie JWT-Tokens funktionieren, woraus sie bestehen und wie man sie sicher verwendet.

Was ist JWT?

JWT (ausgesprochen „jot“) ist eine kompakte, URL-sichere Möglichkeit, Ansprüche zwischen zwei Parteien darzustellen. Das Token besteht aus drei durch Punkte getrennten Teilen: Header.Payload.Signatur. Jeder Teil ist in Base64URL.

codiert.

Im Gegensatz zu herkömmlichen Sitzungen, bei denen der Server den Status des Benutzers speichert, ist JWT stateless – alle notwendigen Informationen sind im Token selbst enthalten. Dadurch ist JWT ideal für verteilte Systeme und Microservice-Architekturen.

JWT-Token-Struktur

Header (Header)

Der Header enthält normalerweise zwei Felder: Tokentyp (typ) und Signaturalgorithmus (alg). Die gebräuchlichsten Algorithmen sind HS256 (HMAC mit SHA-256) und RS256 (RSA mit SHA-256).

Beispiel-Header:

{
  "alg": "HS256",
  "typ": "JWT"
}

Nutzlast (Nutzlast)

Payload enthält Ansprüche – Aussagen über den Benutzer und zusätzliche Metadaten. Es gibt drei Arten von Ansprüchen:

  • Registrierte Ansprüche – Standardfelder: iss (Aussteller), exp (Ablaufdatum), sub (Betreff), aud(Publikum), iat (Erstellungszeit)
  • Öffentliche Ansprüche – in der IANA-Registrierung definiert oder über einen URI verfügen, um Kollisionen zu vermeiden
  • Private Ansprüche – beliebige zwischen den Parteien vereinbarte Felder (z. B. user_id, role)

Beispielnutzlast:

{
  "sub": "1234567890",
  "name": "John Doe",
  "role": "admin",
  "iat": 1516239022,
  "exp": 1516242622
}

Signatur (Signatur)

Die Signatur wird erstellt, indem Header und Payload in Base64URL codiert, mit einem Punkt verbunden und mit einem geheimen Schlüssel signiert werden. Die Signatur stellt sicher, dass das Token seit seiner Erstellung nicht geändert wurde.

Für HS256 sieht die Formel so aus:

HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)

So funktioniert die JWT-Authentifizierung

Der Authentifizierungsprozess mit JWT sieht normalerweise so aus:

  1. Login: Der Benutzer sendet seine Zugangsdaten (E-Mail + Passwort) an den Server
  2. Token-Generierung: Der Server prüft die Daten und erstellt bei Richtigkeit ein JWT mit den notwendigen Ansprüchen
  3. Storage: Client speichert Token (normalerweise in localStorage oder httpOnly-Cookie)
  4. Anfragen werden gesendet: Bei jeder Anfrage fügt der Client dem Header ein Token hinzu Authorization: Bearer <token>
  5. Verification: Server überprüft die Tokensignatur und extrahiert Benutzerdaten aus der Nutzlast

Vorteile von JWT

  • Stateless: Der Server muss keine Sitzungen in der Datenbank oder im Speicher speichern
  • Skalierbarkeit: Ideal für Microservices – jeder Dienst kann das Token verifizieren
  • Domänenübergreifend: JWT ist einfach zwischen verschiedenen Domänen und Diensten zu verwenden
  • Kompaktheit: Kleine Größe ermöglicht die Übergabe von Token in URL, POST-Parametern oder Headern
  • Selbstversorgung: Alle Informationen zur Autorisierung sind im Token enthalten

JWT-Sicherheit: Best Practices

1. Legen Sie immer ein Ablaufdatum fest

Erstellen Sie niemals Token ohne exp Anspruch. Die empfohlene Lebensdauer eines Zugriffstokens beträgt 15 Minuten bis 1 Stunde. Verwenden Sie für längere Sitzungen Aktualisierungstoken.

2. Verwenden Sie nur http-Cookies

Anstelle von localStorage ist es besser, JWT nur in httpOnly-Cookies zu speichern, auf die JavaScript nicht zugreifen kann. Dies schützt vor XSS-Angriffen. Aktivieren Sie außerdem die Kontrollkästchen Secure und SameSite.

3. Speichern Sie keine sensiblen Daten in Payload

Payload ist nur Base64-codiert, nicht verschlüsselt. Jeder kann es entschlüsseln. Geben Sie niemals Passwörter, Kreditkartennummern oder andere vertrauliche Informationen an.

4. Verwenden Sie zuverlässige Algorithmen

Vermeiden Sie den Algorithmus none. Für eine symmetrische Signatur verwenden Sie HS256 mit einem langen Geheimnis (mindestens 256 Bit).Für asymmetrisch – RS256 oder ES256.

5. Alle Ansprüche validieren

Überprüfen Sie bei der Überprüfung eines Tokens immer Folgendes: exp (nicht abgelaufen), iss (richtiger Aussteller), aud (richtige Zielgruppe). Vertrauen Sie einem Token nicht nur, wenn es eine gültige Signatur hat.

6. Token-Auszahlung implementieren

Obwohl JWT zustandslos ist, müssen Sie manchmal das Token widerrufen (z. B. wenn Sie sich abmelden oder Ihr Passwort ändern). Verwenden Sie dazu eine Blacklist mit Tokens oder eine kurze Lebensdauer mit Refresh-Tokens.

Typische Fehler bei der Arbeit mit JWT

  • Fehlende Signaturüberprüfung ist der gefährlichste Fehler, der es Ihnen ermöglicht, einen Token zu fälschen
  • Verwendung eines schwachen Geheimnisses – kurze oder vorhersehbare Geheimnisse können mit roher Gewalt aufgegriffen werden
  • Storage in localStorage – Anfälligkeit für XSS-Angriffe
  • Ablaufzeit ist zu lang – vergrößert das Angriffsfenster, wenn das Token kompromittiert wird
  • Übertragung über URL – das Token landet möglicherweise in Serverprotokollen und im Browserverlauf

JWT vs. Sitzungen: Wann sollte man was verwenden

JWT eignet sich am besten für:

  • Single Page Applications (SPAs) mit separater API
  • Microservice-Architektur
  • Mobile Apps
  • Systeme mit Single Sign-On(SSO)

Traditionelle Sitzungen sind besser für:

  • Server-Webanwendungen (Laravel, Rails, Django)
  • Anwendungen, die eine sofortige Sperrung des Zugriffs erfordern
  • Einfache Projekte ohne komplexe Architektur

Übung: JWT-Dekodierung

Möchten Sie sehen, was in einem JWT-Token enthalten ist? Verwenden Sie unseren JWT-Decoder – er zerlegt den Token in Komponenten, zeigt den Header und die Nutzlast an und prüft die Signatur. Dies ist ein nützliches Tool für Entwickler beim Debuggen der Authentifizierung.

Fazit

JWT-Tokens sind ein leistungsstarker Authentifizierungsmechanismus für moderne Anwendungen. Sie bieten zustandslose Autorisierung, sind leicht skalierbar und funktionieren zwischen verschiedenen Diensten. Das Wichtigste ist, die Sicherheitsregeln einzuhalten: Legen Sie das Ablaufdatum fest, verwenden Sie zuverlässige Algorithmen, bewahren Sie Token sicher auf und validieren Sie alle Ansprüche. Bei korrekter Verwendung vereinfacht JWT die Architektur erheblich und verbessert die Anwendungsleistung.

Kommentare (0)

Um einen Kommentar zu schreiben, bitte anmelden

Noch keine Kommentare. Schreiben Sie den ersten!

Bleiben Sie auf dem Laufenden

Erhalten Sie Benachrichtigungen über neue Artikel, Tools und Updates.

Sie sind angemeldet! Vielen Dank.

KI Xuvero
Hallo! Ich bin KI Xuvero — eine künstliche Intelligenz, entwickelt vom Xuvero-Team. Ich kann das richtige Tool finden, Dinge erklären, Code schreiben, jede Frage beantworten oder einfach plaudern. Wie kann ich Ihnen helfen?