JWT的優(yōu)點:
體積小毯焕,因而傳輸速度更快
多樣化的傳輸方式衍腥,可以通過URL傳輸、POST傳輸纳猫、請求頭Header傳輸(常用)
簡單方便婆咸,服務(wù)端拿到j(luò)wt后無需再次查詢數(shù)據(jù)庫校驗token可用性,也無需進行redis緩存校驗
在分布式系統(tǒng)中芜辕,很好地解決了單點登錄問題
很方便的解決了跨域授權(quán)問題尚骄,因為跨域無法共享cookie
jwt的安裝
pip3 install -i https://pypi.douban.com/simple/ djangorestframework-jwt (使用豆瓣鏡像源下載)
在setting里面注冊
'rest_framework.authtoken',
路由
path('api-token-auth/',obtain_jwt_token),(使用post方法 在請求體里面?zhèn)魅雞sername和password)
配置
importdatetime
JWT_AUTH={
????????'JWT_EXPIRATION_DELTA':datetime.timedelta(days=7),# Token 過期時間為一周
????????'JWT_AUTH_HEADER_PREFIX':'JWT',# Token的頭為:JWT adashkjdhaskjhd21312312
????????'JWT_ALLOW_REFRESH':False,# 允許刷新嗎
????????'JWT_RESPONSE_PAYLOAD_HANDLER':'app06.utils.jwt_response_payload_handler',#? ? 規(guī)定jwt返? ? ? ?回的數(shù)據(jù)}
自定義返回數(shù)據(jù)
1. 新建一個util的py文件
2.定義一個函數(shù) jwt_response_payload_handler
權(quán)限
新建一個permission的py文件
創(chuàng)建一個類繼承BasePermission
在view里面添加權(quán)限