"""Authentication middleware for API key verification."""
import logging
from fastapi import Header, HTTPException, status
from config import BACKEND_API_KEY
logger = logging.getLogger(__name__)
async def verify_api_key(x_api_key: str = Header(..., alias="X-API-Key")) -> str:
"""
Verify API key from request header.
Args:
x_api_key: API key from X-API-Key header
Returns:
Validated API key
Raises:
HTTPException: If API key is invalid
"""
if not x_api_key:
logger.warning("Missing API key in request")
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Missing API key"
)
if x_api_key != BACKEND_API_KEY:
logger.warning("Invalid API key attempt")
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid API key"
)
return x_api_key