Spaces:
Sleeping
Sleeping
| # services/security.py | |
| from fastapi import Security, HTTPException, status | |
| from fastapi.security import APIKeyHeader | |
| import config | |
| API_KEY_NAME = "X-API-Key" | |
| api_key_header = APIKeyHeader(name=API_KEY_NAME, auto_error=True) | |
| async def get_api_key(api_key: str = Security(api_key_header)): | |
| """Dependency to validate API Key.""" | |
| if config.ALLOWED_API_KEYS and api_key not in config.ALLOWED_API_KEYS: | |
| raise HTTPException( | |
| status_code=status.HTTP_403_FORBIDDEN, | |
| detail="Invalid or missing API Key" | |
| ) | |
| # If ALLOWED_API_KEYS is empty, allow all requests (useful for local dev or internal use) | |
| # Consider adding a specific flag for this behaviour if needed for clarity | |
| return api_key |