gunicorn и flask-jwt-extended не получают текущего пользователя - PullRequest
0 голосов
/ 15 января 2019

Я создавал приложение, которое использует колбу flask_jwt_extended и декоратор @jwt_required вокруг защищенных функций, для доступа к которым требуется токен доступа. С этих конечных точек я могу использовать функцию flask_jwt_extended get_current_user для извлечения текущего пользователя.

Во время разработки это работало нормально, но теперь я планирую обслуживать производственное приложение, используя gunicorn. Однако, когда я запускаю сервер gunicorn, кажется, что функция get_current_user всегда не возвращает ничего. Например, следующий код работает с python3 -m flask run, но не с gunicorn run:app -b localhost:5000. В чем может быть проблема здесь?

@jwt_required
def get_user_by_id(user_id: str) -> Dict[str, Any]:
    # returns user when using flask run, but not with gunicorn
    curr_user = get_current_user()

1 Ответ

0 голосов
/ 05 мая 2019

Класс-работник

Если вы попытаетесь использовать рабочий тип синхронизации и установить для потоков значение больше 1, вместо этого будет использован рабочий тип gthread.

  • В вашем файле конфигурации Python или вы можете изменить рабочий класс прямо в командной строке.

worker_class = 'gthread'

Проверьте свой JWT_SECRET_KEY

  • JWT_SECRET_KEY должны иметь одинаковое значение для всех работников
...