Spaces:
Runtime error
Runtime error
File size: 855 Bytes
ede4a2e | 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 | 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
|