from typing import Dict, Optional from fastapi import Depends, HTTPException, Request from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer import app.container as container bearer_scheme = HTTPBearer(auto_error=False) def auth_dependency(credentials: Optional[HTTPAuthorizationCredentials] = Depends(bearer_scheme)) -> None: if credentials is None: raise HTTPException(status_code=401, detail={"code": "unauthorized", "message": "Invalid auth header."}) if credentials.credentials != container.app_state.settings.token: raise HTTPException(status_code=401, detail={"code": "unauthorized", "message": "Invalid bearer token."}) def caller_identity(request: Request) -> Dict[str, str]: return { "ip": request.client.host if request.client else "unknown", "request_id": request.headers.get("x-request-id", ""), }