FastAPI 学习之路(五十七)校验是否登陆

      在之前的分享的中,产生了token,用于做登录的认证,那么产生了token后,登陆携带了token,我们如何校验呢?

先来梳理下逻辑:

1. 调用登录接口,产生token

2.调用依赖登录的接口,在请求头中携带token

3.依赖登录的接口,接收到请求,判断是否在headers中携带token

4.携带token,校验是否过期

5.解析token,获取username

6.根据username从redis获取

7.查询到username的token且token相等,我们认为用户登录

8.调用接口返回数据

9.如果其中一项校验不通过,返回对应的失败信息

思路梳理完毕,下面我们把逻辑实现

        先从headers中获取token并且验证是否在redis中存在这个token

async def get_current_user(request: Request, token: Optional[str] = Header(...)) -> BaseUser:
    """token依赖请求头的token校验"""
    # 验证失败返回信息
    credentials_exc = HTTPException(
        status_code=status.HTTP_401_UNAUTHORIZED,
        detail="Authentication Failed",
        headers={"WWW-Authenticate": "Bearer"}
    )
    # 未登录返回信息
    not_login_exc = HTTPException(
        status_code=status.HTTP_403_FORBIDDEN,
        detail="NOT LOGIN OR TOK
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值