OAuth2 ·
JWT ·
Passwort-Hashing ·
Login ·
geschützte Endpunkte ·
Sicherheit
FastAPI bietet integrierte Unterstützung für OAuth2 und JWT. Diese Cheatsheet zeigt, wie Sie eine sichere Authentifizierung mit Passwort-Hashing, Token-basiertem Login und geschützten Routen implementieren.
OAuth2 ist der Standard für die Token-basierte Authentifizierung. FastAPI bietet mit OAuth2PasswordBearer eine einfache Möglichkeit, den Token-Abfluss zu implementieren.
SECRET_KEY und sensible Konfigurationen in Umgebungsvariablen oder einer .env-Datei – niemals direkt im Code!
JWT-Token werden mit jwt.encode() erstellt und mit jwt.decode() verifiziert. Die Token enthalten Claims wie Benutzer-ID und Ablaufzeit.
"sub" (Subject) als Standard-Claim für die Benutzer-ID – das ist ein branchenüblicher Standard in JWT.
Passwort-Hashing ist essenziell für die sichere Speicherung von Benutzerpasswörtern. bcrypt ist ein sicherer, adaptiver Hash-Algorithmus.
Login-Endpunkt verifiziert Benutzername und Passwort und gibt ein JWT-Token zurück, das für geschützte Endpunkte verwendet wird.
/token verwenden – das ist kompatibel mit vielen Client-Bibliotheken und Swagger UI.
Geschützte Endpunkte verwenden eine Dependency, die den Token aus dem Header extrahiert, validiert und den aktuellen Benutzer zurückgibt.
status.HTTP_401_UNAUTHORIZED statt 401 für lesbaren Code und konsistente Statuscodes.
Sicherheit umfasst CORS-Konfiguration, Security-Header und Rate Limiting – für eine robuste und sichere API.
slowapi für einfaches Rate Limiting in FastAPI.
OAuth2
JWT
bcrypt
/token
Depends
CORS
@app.post("/token") ·
jwt.encode(data, SECRET_KEY) ·
Depends(get_current_user)