argos/argos/server/routes/dependencies.py
Luc Didry 09a858794d
— Add built-in authentication for human interface
Built-in user management is provided too
2024-06-21 13:40:47 +02:00

29 lines
747 B
Python

from fastapi import Depends, HTTPException, Request
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
auth_scheme = HTTPBearer()
def get_db(request: Request):
db = request.app.state.SessionLocal()
try:
yield db
finally:
db.close()
def get_config(request: Request):
return request.app.state.config
async def get_manager(request: Request):
return await request.app.state.manager(request)
async def verify_token(
request: Request, token: HTTPAuthorizationCredentials = Depends(auth_scheme)
):
"""Verify agent token"""
if token.credentials not in request.app.state.config.service.secrets:
raise HTTPException(status_code=401, detail="Unauthorized")
return token