SCORECARDAPISTP1 / dependencies.py
zombee11's picture
Upload 29 files
bbee61a verified
Raw
History Blame Contribute Delete
855 Bytes
from fastapi import Depends, HTTPException, status
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
from jose import JWTError, jwt
from app.core.config import get_settings
bearer = HTTPBearer(auto_error=False)
def require_auth(credentials: HTTPAuthorizationCredentials | None = Depends(bearer)) -> dict:
settings = get_settings()
if not settings.enable_auth:
return {"sub": "local-dev"}
if not credentials:
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Missing bearer token")
try:
return jwt.decode(
credentials.credentials,
settings.jwt_secret_key,
algorithms=[settings.jwt_algorithm],
)
except JWTError as exc:
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid token") from exc