Django筆記---使用jwt中的token鑑權機制完成狀態保持的步驟
阿新 • • 發佈:2018-12-17
1.安裝包 djangorestframework-jwt
pip install djangorestframework-jwt
2.配置drf, jwt過期時間
REST_FRAMEWORK = { ........... # 身份認證的方式:JWT session 'DEFAULT_AUTHENTICATION_CLASSES': ( # 前後端分離使用jwt驗證 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', # 訪問admin後臺使用session 'rest_framework.authentication.SessionAuthentication', ), }
# 過期時間為10小時
JWT_AUTH = {
# timedelta 時間差
'JWT_EXPIRATION_DELTA': datetime.timedelta(hours=10),
}
3.在建立use物件的時候手動生成token
# 需要生成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) # header.payload.signature
4.在序列化中定義只輸出的token屬性
token = serializers.CharField(read_only=True)
5. 為user新增token屬性才能輸出到客戶端
user.token = token
如果你和我有共同愛好,我們可以加個好友一起交流!