如何解决错误django中不允许使用指定的alg值

时间:2019-11-08 10:39:41

标签: django python-3.x jwt

我正在尝试解码从身份验证服务收到的一些JWT字符串,但出现错误The specified alg value is not allowed。可能是什么问题?我确认我应该使用的算法是 HS256

当我尝试在https://jwt.io/解码JWT字符串时,它正在被解码。

代码段

    try:
        print(jwt_value)
        decoded = jwt.decode(jwt_value, 'secret', algorithms=['HS256'])
        print(decoded)
    except Exception as e:
        print(e)

JWT设置

JWT_AUTH = {
    # 'JWT_EXPIRATION_DELTA': datetime.timedelta(seconds=36000),
    'JWT_ENCODE_HANDLER':
    'rest_framework_jwt.utils.jwt_encode_handler',

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

    'JWT_PAYLOAD_HANDLER':
    'sbp.custom_jwt.jwt_payload_handler',

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

    'JWT_RESPONSE_PAYLOAD_HANDLER':
    'sbp.custom_jwt.jwt_response_payload_handler',

    'JWT_SECRET_KEY': 'secret',
    '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=36000),
    '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,
}

0 个答案:

没有答案