Ошибка "Указанное значение 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 приложению разрешить этот алгоритм и, следовательно, получить действительный токен?
Заранее спасибо. Дайте мне знать, если потребуется дополнительная информация.