Spaces:
Sleeping
Sleeping
| from fastapi import Security, HTTPException, status, Depends | |
| from fastapi.security.api_key import APIKeyHeader | |
| from config import API_KEY, API_KEY_NAME | |
| from typing import Optional | |
| # Define the API key header | |
| api_key_header = APIKeyHeader(name=API_KEY_NAME, auto_error=False) | |
| async def get_api_key(api_key_header: str = Security(api_key_header)) -> str: | |
| """ | |
| Validate API key from header | |
| """ | |
| if api_key_header == API_KEY: | |
| return api_key_header | |
| raise HTTPException( | |
| status_code=status.HTTP_401_UNAUTHORIZED, | |
| detail="Invalid API Key", | |
| ) | |
| # Simple function to get a dummy user for API key auth | |
| async def get_current_user_from_api_key(api_key: str = Depends(get_api_key)): | |
| """ | |
| Return a dummy user for API key authentication | |
| """ | |
| # This provides a compatible interface with the JWT auth | |
| return SimpleUser(username="api_user", disabled=False) | |
| class SimpleUser: | |
| def __init__(self, username: str, disabled: bool = False): | |
| self.username = username | |
| self.disabled = disabled | |