django jwt如何签名jwt令牌?

时间:2018-11-05 03:02:06

标签: python django jwt

使用https://github.com/GetBlimp/django-rest-framework-jwt时,如何签名JWT请求?它是在settings.py文件中使用django密钥还是对请求进行特别签名?有没有办法为此提供一个私有密钥文件,或者发出jwt请求有什么要求?

1 个答案:

答案 0 :(得分:1)

JWT_AUTH = {
    'JWT_ENCODE_HANDLER':
    'rest_framework_jwt.utils.jwt_encode_handler',

    'JWT_DECODE_HANDLER':
    'rest_framework_jwt.utils.jwt_decode_handler',

    'JWT_PAYLOAD_HANDLER':
    'rest_framework_jwt.utils.jwt_payload_handler',

    'JWT_PAYLOAD_GET_USER_ID_HANDLER':
    'rest_framework_jwt.utils.jwt_get_user_id_from_payload_handler',

    'JWT_RESPONSE_PAYLOAD_HANDLER':
    'rest_framework_jwt.utils.jwt_response_payload_handler',

    'JWT_SECRET_KEY': settings.SECRET_KEY,
    'JWT_GET_USER_SECRET_KEY': None,
    'JWT_PUBLIC_KEY': None,
    'JWT_PRIVATE_KEY': None,
    'JWT_ALGORITHM': 'HS256',
    'JWT_VERIFY': True,
    'JWT_VERIFY_EXPIRATION': True,
    'JWT_LEEWAY': 0,
    'JWT_EXPIRATION_DELTA': datetime.timedelta(seconds=300),
    'JWT_AUDIENCE': None,
    'JWT_ISSUER': None,

    'JWT_ALLOW_REFRESH': False,
    'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7),

    'JWT_AUTH_HEADER_PREFIX': 'JWT',
    'JWT_AUTH_COOKIE': None,

}

这些是drf jwt中可用的settings

在这里您可以看到 JWT_SECRET_KEY 设置。您可以在此处指定自定义机密。

  

JWT_SECRET_KEY 这是用于签署JWT的密钥。确保   这是安全的,不会共享或公开。

     

默认为项目的设置。SECRET_KEY。