新聞中心
token認(rèn)證

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)峽江,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
在restful設(shè)計(jì)中,用戶認(rèn)證模式通常使用json web token,而不會使用傳統(tǒng)的HTTP Basic認(rèn)證(傳入賬號密碼)
token認(rèn)證模式如下:在請求header中加入token
相關(guān)推薦:《Python視頻教程》
Flask中的實(shí)現(xiàn)
flask擴(kuò)展flask-httpauth提供了該認(rèn)證方法
$ pip install flask-httpauth
首先實(shí)例化
auth = HTTPTokenAuth(scheme='JWT')
上面的scheme就是token前面的字符串,可以自定義,這里我使用JWT
源代碼如下:
它提供了一個裝飾器,里面可以實(shí)現(xiàn)自己的token檢驗(yàn)方法
@auth.verify_token def verify_token(token): pass #這里需要自定義
Flask中的itsdangerous提供了令牌生成和校驗(yàn)的方法
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
通過驗(yàn)證后返回True代表token認(rèn)證成功!
如果有需要登錄的視圖,就可以使用如下裝飾器:
@api.route('/login_require/', methods=['POST'])
@auth.login_required
def func():
pass只有Token認(rèn)證成功才能進(jìn)入該視圖。
本文標(biāo)題:創(chuàng)新互聯(lián)Python教程:Flask如何實(shí)現(xiàn)HTTP令牌token認(rèn)證
標(biāo)題網(wǎng)址:http://www.dlmjj.cn/article/dpghdsi.html


咨詢
建站咨詢
