flask 基于Cookie的拦截器

用户登录后,生成Cookie:

response = make_response(json.dumps(resp_body))
response.set_cookie(app.config['AUTH_COOKIE_NAME'], "{salt}#{user_id}".format(salt=UserService.geneAuthCode(user_info),
                                                    user_id=user_info.uid))

 

拦截器中校验Cookie:

使用flask 的@app.before_request
cookies = request.cookies
auth_cookie = cookies[app.config['AUTH_COOKIE_NAME']] if app.config['AUTH_COOKIE_NAME'] in  cookies else None

if auth_cookie is None:
    return False

auth_info = auth_cookie.split("#")
if len(auth_info) != 2:
    return False

try:
    user_info = User.query.filter_by(uid = auth_info[1]).first()
    # app.logger.info("user_info : {0}".format(str(user_info)))
except Exception:
    return False

if user_info is None:
    return False

if auth_info[0] != UserService.geneAuthCode(user_info=user_info):
    return False

return user_info
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值