Files

16 lines
478 B
Python

"""Static bearer-key authentication."""
import secrets
from fastapi import Request
from .config import Settings
from .errors import Unauthorized
def require_key(request: Request, settings: Settings) -> None:
header = request.headers.get("authorization", "")
scheme, _, token = header.partition(" ")
expected = settings.adapter_api_key
if not expected or scheme.lower() != "bearer" or not secrets.compare_digest(token, expected):
raise Unauthorized()