from fastapi import HTTPException, Depends from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials from services.jwtService import verify_jwt_token from services.userServices import UserServices from fastapi import Request security = HTTPBearer() async def auth_required(request: Request ,credentials: HTTPAuthorizationCredentials = Depends(security)): """ Dependency function to verify JWT token for protected routes """ if credentials.scheme != "Bearer": raise HTTPException(status_code=401, detail="Invalid authentication scheme") payload = verify_jwt_token(credentials.credentials) if payload is None: raise HTTPException(status_code=401, detail="Invalid authentication token") # Get user from database user = await UserServices().get_user(payload["id"]) # set user to request state request.state.user = user request.state.payload = payload return True