Autentificare prin Cheie API (APIKeyHeader & APIKeyQuery) în FastAPI

security FastAPI 0.110+ / Python 3.10+ Q&A / Distribuie cod

Protejarea endpoint-urilor prin chei API transmise în antetul HTTP sau în query string pentru integrări între servere (B2B).

Sintaxă
api_key_header = APIKeyHeader(name="X-API-Key")

Pentru integrările machine-to-machine (cum ar fi webhook-uri sau API-uri B2B pentru clienți corporate), fluxurile OAuth2 interactive nu sunt practice. Standardul este alocarea unei Chei API (API Key) statice sau rotite periodic.

FastAPI include clasele APIKeyHeader, APIKeyQuery și APIKeyCookie, care extrag cheia, o documentează în Swagger UI sub secțiunea Security și o transmit către funcția de validare.

Exemplu: Securizare endpoint B2B cu APIKeyHeader
from fastapi import FastAPI, Depends, HTTPException, status
from fastapi.security import APIKeyHeader
from typing import Annotated

app = FastAPI()
api_key_header = APIKeyHeader(name="X-API-Key", auto_error=True)

VALID_API_KEYS = {"client_alpha_99", "client_beta_42"}

async def validate_api_key(api_key: Annotated[str, Depends(api_key_header)]):
    if api_key not in VALID_API_KEYS:
        raise HTTPException(
            status_code=status.HTTP_403_FORBIDDEN,
            detail="Cheie API neautorizată"
        )
    return api_key

@app.get("/b2b/inventory")
async def get_inventory(key: Annotated[str, Depends(validate_api_key)]):
    return {"status": "ok", "stoc": 1500}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Autentificare prin Cheie API (APIKeyHeader & APIKeyQuery)

Ai o nelămurire despre utilizarea comenzii Autentificare prin Cheie API (APIKeyHeader & APIKeyQuery) sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.