embedding-server / app /auth.py
Faysal4200's picture
Upload 45 files
ec855e6 verified
Raw
History Blame Contribute Delete
834 Bytes
# app/auth.py
"""
Authorization dependency.
"""
from fastapi import Request, HTTPException, status, Header
from .config import settings
from .logger import logger
async def api_key_guard(
request: Request,
x_api_key: str = Header(..., alias="x-api-key", description="API Key for authentication"),
) -> None:
# Check API key
# FastAPI's Header(...) ensures the key is present. behavior if missing is 422.
# We still check the value.
if x_api_key != settings.EMBED_API_KEY:
logger.warning(f"Unauthorized: Invalid API key. Provided: {x_api_key[:4] if x_api_key else 'None'}...")
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail="Invalid API key")
logger.debug(f"Auth passed for request from {request.client.host if request.client else 'unknown'}")