def get_current_user(db: Session = Depends(get_db), token: str = Depends(reusable_oauth2)) -> models.User: try: payload = jwt.decode(token, settings.SECRET_KEY, algorithms=[security.ALGORITHM]) token_data = schemas.TokenPayload(**payload) except (jwt.JWTError, ValidationError): raise UserTokenException('无效凭据') user = crud.user.get(db, id=token_data.sub) if not user: raise NotFoundException('用户不存在') return user
def get_current_user(db: Session = Depends(get_db), token: str = Depends(reusable_oauth2)) -> models.User: try: payload = jwt.decode(token, settings.SECRET_KEY, algorithms=[security.ALGORITHM]) token_data = schemas.TokenPayload(**payload) except (jwt.JWTError, ValidationError): raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail="Could not validate credentials", ) user = crud.user.get(db, id=token_data.sub) if not user: raise HTTPException(status_code=404, detail="User not found") return user