Die Macht der FastAPI-Authentifizierung freisetzen: Sichern Sie Ihre APIs mit Leichtigkeit

Sichere deine APIs mit FastAPI! OAuth2, Passwort-Hashing & Apidog. Baue schnell & sicher APIs. Starte jetzt!

Leo Schulz

Leo Schulz

5 June 2025

Die Macht der FastAPI-Authentifizierung freisetzen: Sichern Sie Ihre APIs mit Leichtigkeit

Egal, ob Sie ein erfahrener Entwickler sind oder gerade erst anfangen, die Sicherstellung der Sicherheit Ihrer APIs ist von entscheidender Bedeutung. FastAPI, ein modernes, schnelles (High-Performance) Web-Framework für die Erstellung von APIs mit Python 3.7+, bietet eine hervorragende Lösung. Heute werden wir uns eingehend mit den Vor- und Nachteilen der FastAPI-Authentifizierung befassen, untersuchen, wie man sie implementiert, und warum sie ein Game-Changer für Ihre Projekte ist. Außerdem werden wir uns damit befassen, wie Tools wie Apidog Ihr Leben noch einfacher machen können.

button

Warum FastAPI für Ihre APIs?

Bevor wir uns mit den Einzelheiten der Authentifizierung befassen, wollen wir darüber sprechen, warum Sie sich überhaupt für FastAPI entscheiden könnten. FastAPI ist so konzipiert, dass es schnell und einfach ist, sodass Sie schnell leistungsstarke APIs erstellen und bereitstellen können. Es basiert auf Starlette für die Web-Teile und Pydantic für die Datenteile, was bedeutet, dass Sie sowohl Geschwindigkeit als auch Zuverlässigkeit erhalten.

FastAPI framework, high performance, easy to learn, fast to code, ready for production

Wichtige Vorteile von FastAPI

  1. Performance: FastAPI ist eines der schnellsten verfügbaren Python-Frameworks.
  2. Benutzerfreundlichkeit: Seine Syntax ist intuitiv und unkompliziert, sodass es auch für Anfänger zugänglich ist.
  3. Automatische interaktive API-Dokumentation: FastAPI generiert automatisch eine interaktive API-Dokumentation mit Swagger UI und ReDoc.
  4. Typsicherheit: Durch die Nutzung von Python-Typ-Hinweisen gewährleistet FastAPI robusten und fehlerfreien Code.

Die Bedeutung der Authentifizierung

Beim Erstellen von APIs ist die Sicherung mit Authentifizierungsmechanismen unerlässlich, um sensible Daten zu schützen und sicherzustellen, dass nur autorisierte Benutzer auf bestimmte Endpunkte zugreifen können. Die Authentifizierung hilft, die Identität von Benutzern oder Systemen zu überprüfen, die mit Ihrer API interagieren, und bietet eine Ebene der Sicherheit und des Vertrauens.

Arten der Authentifizierung

FastAPI unterstützt mehrere Arten der Authentifizierung, darunter:

Einrichten der FastAPI-Authentifizierung

Kommen wir nun zum Kern der Sache – dem Einrichten der Authentifizierung in FastAPI. Wir werden eine grundlegende Implementierung von OAuth2 mit Passwort (und Hashing) behandeln, eine der gebräuchlichsten und sichersten Möglichkeiten, die Authentifizierung zu handhaben.

Schritt 1: Installieren Sie FastAPI und Abhängigkeiten

Stellen Sie zunächst sicher, dass Sie FastAPI und die erforderlichen Abhängigkeiten installiert haben. Sie können dies mit pip tun:

pip install fastapi[all] uvicorn

Mit [all] werden alle für die Authentifizierung benötigten Abhängigkeiten installiert, einschließlich pydantic und python-jose für JWT.

Schritt 2: Erstellen Sie eine einfache FastAPI-Anwendung

Beginnen wir mit einer einfachen FastAPI-Anwendung. Erstellen Sie eine Datei namens main.py:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

Sie können diese Anwendung mit Uvicorn ausführen:

uvicorn main:app --reload

Schritt 3: Implementierung von OAuth2 mit Passwort

OAuth2 ist ein weit verbreitetes Autorisierungs-Framework, das spezifische Autorisierungsabläufe für verschiedene Arten von Anwendungen bereitstellt. Wir verwenden OAuth2 mit Passwort (und Hashing), um die Authentifizierung zu verwalten.

Erstellen von Benutzermodellen

Definieren Sie zunächst Ihre Benutzermodelle. Erstellen Sie eine Datei namens models.py:

from pydantic import BaseModel

class User(BaseModel):
    username: str
    email: str
    full_name: str
    disabled: bool = False

class UserInDB(User):
    hashed_password: str

Passwort-Hashing-Dienstprogramm

Als Nächstes benötigen Sie ein Dienstprogramm zum Hashen und Überprüfen von Passwörtern. Erstellen Sie eine Datei namens security.py:

from passlib.context import CryptContext

pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")

def verify_password(plain_password, hashed_password):
    return pwd_context.verify(plain_password, hashed_password)

def get_password_hash(password):
    return pwd_context.hash(password)

OAuth2-Passwort-Flow

Konfigurieren Sie nun den OAuth2-Passwort-Flow. Aktualisieren Sie Ihre main.py, um Folgendes einzuschließen:

from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
from jose import JWTError, jwt
from pydantic import BaseModel
from typing import Optional
import time

# Secret key to encode JWT
SECRET_KEY = "your_secret_key"
ALGORITHM = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES = 30

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

# User database simulation
fake_users_db = {
    "johndoe": {
        "username": "johndoe",
        "full_name": "John Doe",
        "email": "johndoe@example.com",
        "hashed_password": "$2b$12$...",
        "disabled": False,
    }
}

class Token(BaseModel):
    access_token: str
    token_type: str

class TokenData(BaseModel):
    username: Optional[str] = None

def authenticate_user(fake_db, username: str, password: str):
    user = fake_db.get(username)
    if not user:
        return False
    if not verify_password(password, user["hashed_password"]):
        return False
    return user

def create_access_token(data: dict, expires_delta: Optional[int] = None):
    to_encode = data.copy()
    if expires_delta:
        expire = time.time() + expires_delta
    else:
        expire = time.time() + ACCESS_TOKEN_EXPIRE_MINUTES * 60
    to_encode.update({"exp": expire})
    encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
    return encoded_jwt

@app.post("/token", response_model=Token)
async def login_for_access_token(form_data: OAuth2PasswordRequestForm = Depends()):
    user = authenticate_user(fake_users_db, form_data.username, form_data.password)
    if not user:
        raise HTTPException(
            status_code=status.HTTP_401_UNAUTHORIZED,
            detail="Incorrect username or password",
            headers={"WWW-Authenticate": "Bearer"},
        )
    access_token = create_access_token(data={"sub": user["username"]})
    return {"access_token": access_token, "token_type": "bearer"}

@app.get("/users/me", response_model=User)
async def read_users_me(token: str = Depends(oauth2_scheme)):
    credentials_exception = HTTPException(
        status_code=status.HTTP_401_UNAUTHORIZED,
        detail="Could not validate credentials",
        headers={"WWW-Authenticate": "Bearer"},
    )
    try:
        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
        username: str = payload.get("sub")
        if username is None:
            raise credentials_exception
        token_data = TokenData(username=username)
    except JWTError:
        raise credentials_exception
    user = fake_users_db.get(username, None)
    if user is None:
        raise credentials_exception
    return user

Dieser Code richtet einen einfachen OAuth2-Passwort-Flow ein. Benutzer können ein Token erhalten, indem sie ihren Benutzernamen und ihr Passwort an den Endpunkt /token übermitteln, und sie können dieses Token verwenden, um sich an geschützten Endpunkten wie /users/me zu authentifizieren.

Schritt 4: Testen Ihrer Authentifizierung

Um Ihre Authentifizierung zu testen, können Sie ein API-Testtool wie Postman oder Apidog verwenden. So geht's mit Apidog:

Erstellen Sie eine neue Anfrage: Öffnen Sie Apidog und erstellen Sie eine neue Anfrage.

Verbessern Sie Ihre FastAPI-Authentifizierung mit Apidog

Während FastAPI die Einrichtung der Authentifizierung vereinfacht, können Tools wie Apidog den Prozess weiter optimieren, indem sie eine Plattform zum Entwerfen, Dokumentieren und Testen Ihrer APIs bereitstellen. Apidog bietet eine benutzerfreundliche Oberfläche zur Verwaltung Ihrer API-Endpunkte, zur Simulation von Antworten und zur Zusammenarbeit mit Ihrem Team.

Apidog interface

Vorteile der Verwendung von Apidog

  1. Umfassendes API-Management: Entwerfen, testen und dokumentieren Sie Ihre APIs an einem Ort.
  2. Zusammenarbeit: Arbeiten Sie in Echtzeit mit Ihrem Team zusammen, teilen Sie Endpunkte und überprüfen Sie Änderungen.
  3. Mock-Antworten: Simulieren Sie API-Antworten zum Testen, ohne die tatsächlichen Endpunkte zu treffen.

Fazit

FastAPI vereinfacht den Prozess des Erstellens und Sicherns von APIs und macht es zu einer Top-Wahl für Entwickler, die Wert auf Leistung und Benutzerfreundlichkeit legen. Durch die Implementierung der Authentifizierung mit FastAPI stellen Sie sicher, dass Ihre APIs sicher sind und nur autorisierten Benutzern zugänglich sind. Darüber hinaus kann die Nutzung von Tools wie Apidog Ihre API-Entwicklungserfahrung verbessern, indem sie robuste Verwaltungs- und Testfunktionen bereitstellen.

Nachdem Sie nun wissen, wie Sie die FastAPI-Authentifizierung implementieren, können Sie Ihre APIs sicher sichern und Ihre Daten schützen. Viel Spaß beim Codieren!

button

Explore more

Fathom-R1-14B: Fortschrittliches KI-Argumentationsmodell aus Indien

Fathom-R1-14B: Fortschrittliches KI-Argumentationsmodell aus Indien

Künstliche Intelligenz wächst rasant. FractalAIResearch/Fathom-R1-14B (14,8 Mrd. Parameter) glänzt in Mathe & Logik.

5 June 2025

Cursor 1.0 mit BugBot: KI-gestütztes Automatisierungstest-Tool ist da:

Cursor 1.0 mit BugBot: KI-gestütztes Automatisierungstest-Tool ist da:

Die Softwareentwicklung erlebt Innovationen durch KI. Cursor, ein KI-Editor, erreicht mit Version 1.0 einen Meilenstein.

5 June 2025

30+ öffentliche Web 3.0 APIs, die Sie jetzt nutzen können

30+ öffentliche Web 3.0 APIs, die Sie jetzt nutzen können

Der Aufstieg von Web 3.0: Dezentral, nutzerorientiert, transparent. APIs ermöglichen innovative dApps und Blockchain-Integration.

4 June 2025

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen