1. 程式人生 > >Django筆記---使用jwt中的token鑑權機制完成狀態保持的步驟

Django筆記---使用jwt中的token鑑權機制完成狀態保持的步驟

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

如果你和我有共同愛好,我們可以加個好友一起交流!