File size: 756 Bytes
80e0598 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
from fastapi import Security, HTTPException, Depends
from fastapi.security.api_key import APIKeyHeader
import os
import logging
logger = logging.getLogger(__name__)
API_KEY_NAME = "X-API-Key"
API_KEY = os.environ.get("API_KEY")
api_key_header = APIKeyHeader(name=API_KEY_NAME, auto_error=False)
async def get_api_key(api_key_header: str = Security(api_key_header)):
if not API_KEY:
# If no API key is set, don't enforce authentication
logger.warning("API_KEY environment variable not set. API authentication disabled.")
return None
if api_key_header == API_KEY:
return api_key_header
logger.warning(f"Invalid API key attempt")
raise HTTPException(status_code=403, detail="Invalid API Key")
|