tectopia / auth.py
kevinkal's picture
Create auth.py
e0cc38c verified
raw
history blame contribute delete
961 Bytes
from fastapi import HTTPException, Depends
from fastapi.security import APIKeyQuery
from typing import Annotated, Optional
import os
import uuid
AUTH_TOKEN = os.getenv("AUTH_TOKEN")
api_key_query = APIKeyQuery(name="token", auto_error=False)
async def verify_token(token: Annotated[str, Optional[str], Depends(api_key_query)]):
if not AUTH_TOKEN:
raise HTTPException(
status_code=500,
detail="AUTH_TOKEN not configured on server"
)
if not token:
raise HTTPException(
status_code=401,
detail="Token is required"
)
try:
uuid.UUID(token)
except ValueError:
raise HTTPException(
status_code=400,
detail="Invalid token format. Token must be a valid UUID"
)
if token != AUTH_TOKEN:
raise HTTPException(
status_code=401,
detail="Invalid token"
)
return token