PyJWT: JWT-Token-Verwaltung in Python

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in PyJWT

JSON Web Token (JWT) hat sich zum Standard für die Authentifizierung und Autorisierung von APIs entwickelt. Es ermöglicht die sichere Übertragung von Identitätsinformationen zwischen Client und Server, ohne dass Sitzungen auf dem Server gespeichert werden müssen. Eine der beliebtesten Python-Bibliotheken für die Arbeit mit JWT ist PyJWT.

PyJWT ist eine Python-Bibliothek für die Arbeit mit JWT-Tokens, die das Erstellen, Dekodieren und Überprüfen von JWTs vereinfacht und dabei verschiedene Verschlüsselungsalgorithmen unterstützt. Dieser Artikel erklärt detailliert, wie Sie PyJWT effizient und sicher in Ihrem Projekt einsetzen können.

Grundlagen von JWT (JSON Web Token)

Struktur eines JWT-Tokens

Ein JWT besteht aus drei Teilen, die durch Punkte getrennt sind:

header.payload.signature
  • Header — enthält den Tokentyp und den verwendeten Algorithmus (z. B. HS256)
  • Payload — enthält die Claims, also die Nutzdaten
  • Signature — wird zur Überprüfung der Token-Authentizität verwendet

Vorteile der Verwendung von JWT

  • Zustandslos: Der Server muss keine Sitzungen speichern
  • Kompakt: Leicht in HTTP-Headern übertragbar
  • Sicherheit: Unterstützung für HMAC- und RSA-Verschlüsselung
  • Plattformunabhängig: Funktioniert in allen Programmiersprachen
  • Eigenständig: Enthält alle notwendigen Benutzerinformationen

Funktionsweise von JWT

JWT funktioniert nach folgendem Prinzip:

  1. Der Benutzer authentifiziert sich am Server
  2. Der Server generiert ein JWT-Token mit Benutzerinformationen
  3. Der Client speichert das Token und sendet es im Authorization-Header
  4. Der Server überprüft die Token-Signatur und extrahiert die Benutzerdaten

Installation und Einrichtung von PyJWT

So installieren Sie PyJWT

pip install PyJWT

Für die Arbeit mit RSA- und ECDSA-Algorithmen installieren Sie zusätzliche Abhängigkeiten:

pip install "PyJWT[crypto]"

Import und erste Einrichtung

import jwt
import datetime
import os
from typing import Dict, Any

PyJWT implementiert den RFC 7519-Standard vollständig und bietet eine einfache Schnittstelle zum Generieren und Verifizieren von Tokens.

Detaillierte Beschreibung der PyJWT-Bibliothek

Geschichte und Entwicklung

PyJWT wurde 2013 erstellt und ist eine der beliebtesten Bibliotheken für die Arbeit mit JWT-Tokens in Python. Die Bibliothek wird aktiv von der Community entwickelt und gewartet und regelmäßig aktualisiert, um den neuesten Sicherheitsstandards zu entsprechen.

Architektur der Bibliothek

PyJWT basiert auf einer modularen Architektur mit klarer Aufgabentrennung:

  • Kodierungs-/Dekodierungskern — Hauptfunktionen für die Arbeit mit Tokens
  • Algorithmusmodul — Unterstützung verschiedener Verschlüsselungsalgorithmen
  • Ausnahmemodul — Fehlerbehandlung und Ausnahmesituationen
  • Hilfsmodul — Hilfsfunktionen für die Arbeit mit Zeit und Schlüsseln

Hauptfunktionen

  • Unterstützung aller standardmäßigen JWT-Algorithmen
  • Automatische Überprüfung der Token-Lebensdauer
  • Möglichkeit zum Hinzufügen benutzerdefinierter Claims
  • Unterstützung verschiedener Schlüsseltypen (symmetrisch und asymmetrisch)
  • Integration mit gängigen Web-Frameworks

Erstellen von JWT-Tokens mit PyJWT

Basisbeispiel

payload = {"user_id": 123}
secret = "mysecret"
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)

Angabe der Gültigkeitsdauer und zusätzlicher Daten

<

Empfehlungen