DRF JWT使用
阿新 • • 發佈:2020-07-31
JWT 擴充套件使用
需求:
1)伺服器在驗證完使用者的身份後(檢驗使用者名稱和密碼),需要生成jwt token並返回給客戶端。
2)在客戶端將jwt token傳遞給伺服器時,伺服器需要對jwt token資料進行校驗。
關於jwt token的生成和校驗,都可以使用DRF JWT擴充套件來完成。
JWT 官方文件http://getblimp.github.io/django-rest-framework-jwt/
1. 使用
1)安裝
pip install djangorestframework-jwt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
2)配置: 在Django專案的配置檔案settings.py裡新增程式碼
REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( # 引入JWT認證機制,當客戶端將jwt token傳遞給伺服器之後 # 此認證機制會自動校驗jwt token的有效性,無效會直接返回401(未認證錯誤) 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', 'rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.BasicAuthentication', ), } # JWT擴充套件配置 JWT_AUTH = { # 設定生成jwt token的有效時間 'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1), }
3)手動生成jwt tokenJWT擴充套件的說明文件中提供了手動生成jwt token的方法。
from rest_framework_jwt.settings import api_settings jwt_payload_handler= api_settings.JWT_PAYLOAD_HANDLER jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER payload = jwt_payload_handler(user) token = jwt_encode_handler(payload)
2. 總結:
JWT擴充套件
- 功能:生成jwt token和校驗jwt token
- 安裝:pip install djangorestframework-jwt
- 配置:DRF框架引入jwt認證機制並設定生成jwt token的有效期