示例#1
0
文件: deps.py 项目: moyudyz/myfastapi
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
示例#2
0
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