Spaces:
Running
Running
File size: 1,263 Bytes
21db53c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
from typing import Annotated
from fastapi import HTTPException
from fastapi.params import Header, Depends
from app.config import config
def verify_access_token(token: str | None) -> bool:
return (not config.access_protected) or (token is not None and token == config.access_token)
def permissive_access_token_verify(
x_access_token: Annotated[str | None, Header(
description="Access token set in configuration (if access_protected is enabled)")] = None) -> bool:
return verify_access_token(x_access_token)
def force_access_token_verify(token_passed: Annotated[bool, Depends(permissive_access_token_verify)]):
if not token_passed:
raise HTTPException(status_code=401, detail="Access token is not present or invalid.")
def permissive_admin_token_verify(
x_admin_token: Annotated[str | None, Header(
description="Admin token set in configuration (if admin_api_enable is enabled)")] = None) -> bool:
return config.admin_api_enable and x_admin_token == config.admin_token
def force_admin_token_verify(token_passed: Annotated[bool, Depends(permissive_admin_token_verify)]):
if not token_passed:
raise HTTPException(status_code=401, detail="Admin token is not present or invalid.")
|