from fastapi import Depends, Header from app.config import Settings, get_settings from app.errors import OpenAICompatibleError def require_bearer_auth( authorization: str | None = Header(default=None), settings: Settings = Depends(get_settings), ) -> None: if not settings.require_auth: return if not authorization or not authorization.startswith("Bearer "): raise OpenAICompatibleError( status_code=401, message="Missing or invalid Authorization header.", error_type="invalid_request_error", code="invalid_api_key", ) token = authorization.removeprefix("Bearer ").strip() if token != settings.api_key: raise OpenAICompatibleError( status_code=401, message="Invalid API key provided.", error_type="invalid_request_error", code="invalid_api_key", )