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")