Как устранить ошибку Указанное значение alg не разрешено в django - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь декодировать некоторую строку JWT, которую я получил от службы аутентификации, но получаю ошибку The specified alg value is not allowed. В чем может быть проблема? Я проверил, что алгоритм, который я должен использовать, является HS256 .

Когда я пытаюсь декодировать строку JWT в https://jwt.io/, она декодируется.

фрагмент кода

    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,
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...