Ошибка "Указанное значение alg недопустимо" возникает при запуске django с помощью gunicorn

У меня есть веб-приложение с базой данных, работающее на nginx (front-end) + django + postgresql, и я пытаюсь использовать gunicorn для управления коммуникациями между nginx и django.

Я использую JWT для управления аутентификацией в приложении.

Когда я запускаю сервис, используя django напрямую, я получаю токен "alg": "HS512", но по какой-то непонятной мне причине, когда я запускаю то же приложение django, используя gunicorn, сгенерированный токен соответствует "alg": "HS256" и я получаю следующую ошибку:

  File "/srv/gather-api/env/lib/python3.9/site-packages/jwt/api_jws.py", line 232, in _verify_signature
    raise InvalidAlgorithmError("The specified alg value is not allowed")

Я попробовал изменить свой файл settings.py с:

SIMPLE_JWT = {
    'ACCESS_TOKEN_LIFETIME': timedelta(minutes=ACCESS_TOKEN_LIFETIME),
    'REFRESH_TOKEN_LIFETIME': timedelta(minutes=REFRESH_TOKEN_LIFETIME),
    'ALGORITHM': 'HS512',
    'SIGNING_KEY': SECRET_KEY
}

to:

SIMPLE_JWT = {
    'ACCESS_TOKEN_LIFETIME': timedelta(minutes=ACCESS_TOKEN_LIFETIME),
    'REFRESH_TOKEN_LIFETIME': timedelta(minutes=REFRESH_TOKEN_LIFETIME),
    'ALGORITHM': 'HS256',
    'SIGNING_KEY': SECRET_KEY
}

но все равно получаем ту же ошибку.

Вопросы:

  • Почему алгоритм генерации токена меняется, когда я запускаю приложение с помощью gunicorn?
  • Есть ли способ указать моему django приложению разрешить этот алгоритм и, следовательно, получить действительный токен?

Заранее спасибо. Дайте мне знать, если потребуется дополнительная информация.

Вернуться на верх