from fastapi import HTTPException, Security, status from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer from config import settings _bearer = HTTPBearer(auto_error=False) def require_api_key( credentials: HTTPAuthorizationCredentials | None = Security(_bearer), ) -> str: if not credentials or credentials.credentials != settings.api_key: raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid or missing API key", headers={"WWW-Authenticate": "Bearer"}, ) return credentials.credentials