新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:Flask如何實現(xiàn)HTTP令牌token認證
token認證

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設計、成都做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務峽江,十多年網(wǎng)站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
在restful設計中,用戶認證模式通常使用json web token,而不會使用傳統(tǒng)的HTTP Basic認證(傳入賬號密碼)
token認證模式如下:在請求header中加入token
相關推薦:《Python視頻教程》
Flask中的實現(xiàn)
flask擴展flask-httpauth提供了該認證方法
$ pip install flask-httpauth
首先實例化
auth = HTTPTokenAuth(scheme='JWT')
上面的scheme就是token前面的字符串,可以自定義,這里我使用JWT
源代碼如下:
它提供了一個裝飾器,里面可以實現(xiàn)自己的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認證成功才能進入該視圖。
當前文章:創(chuàng)新互聯(lián)Python教程:Flask如何實現(xiàn)HTTP令牌token認證
當前鏈接:http://m.5511xx.com/article/dpghdsi.html


咨詢
建站咨詢
