python flask token_Flask如何实现HTTP令牌token认证

936b563610e2033de2d872af4f3d985b.png

Token认证

在restful设计中,用户认证模式通常使用json web token,而不会使用传统的HTTP Basic认证(传入账号密码)

token认证模式如下:在请求header中加入token

14fed76abefe295bee4b7031a4119287.png

相关推荐:《Python视频教程》

Flask中的实现

flask扩展flask-httpauth提供了该认证方法$ pip install flask-httpauth

首先实例化auth = HTTPTokenAuth(scheme='JWT')

上面的scheme就是token前面的字符串,可以自定义,这里我使用JWT

源代码如下:

81b47a30e170a785d08e537482d126f6.png

它提供了一个装饰器,里面可以实现自己的token检验方法@auth.verify_token

def verify_token(token):

pass

#这里需要自定义

Flask中的itsdangerous提供了令牌生成和校验的方法from itsdangerous import TimedJSONWebSignatureSerializer, BadSignature,\

SignatureExpired

组合起来:@auth.verify_token

def verify_token(token):

s = TimedJSONWebSignatureSerializer(

current_app.config['SECRET_KEY']

)

try:

data = s.loads(token)

print(data)

except BadSignature:

raise AuthFailed(msg='token不正确')

except SignatureExpired:

raise AuthFailed(msg='token过期')

uid = data['uid']

return True

通过验证后返回True代表token认证成功!

如果有需要登录的视图,就可以使用如下装饰器:@api.route('/login_require/', methods=['POST'])

@auth.login_required

def func():

pass

只有Token认证成功才能进入该视图。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值