Я запускаю Flask Restful на сервере в производственном режиме с использованием Python 3.6 и поражаю конечную точку, требующую аутентификации jwt, но продолжаю получать ошибку «NoAuthorizationError Missing Authorization Header».
Странная часть в том, что тот же самый запрос отправляется с помощью Postman в локальную версию точно такого же приложения Flask на моем Mac, и он прекрасно работает без каких-либо ошибок. Проблема возникает только на работающем сервере, и все пакеты pip также имеют одинаковую версию.
UPDATE
Я использую Gunicorn на работающем сервере, и когда я останавливаю приложение и работаю нормально, используя python run.py
, ошибка исчезает и возвращает правильный ответ.
У меня установлены следующие обработчики для ошибок jwt, и опять-таки, это происходит в локальной версии моего приложения:
- jwt.token_in_blacklist_loader
- jwt.expired_token_loader
- jwt.invalid_token_loader
- jwt.revoked_token_loader
- jwt.needs_fresh_token_loader
- jwt.unauthorized_loader
- jwt.claims_verification_failed_loader
В целях тестирования я не отправляю токен в самом запросе. Даже если я это сделаю, ошибка все еще сохраняется.
Вот ответ локально на моем Mac:
{
"errors": {
"application": "Missing Authorization Header",
"validation": null
},
"http_status": 401,
"message": "There was a problem authenticating your token.",
"status": 0,
"time": 20
}
Вот ответ на работающем сервере:
Aug 29 17:15:15 [5168]: return self.dispatch_request(*args, **kwargs)
Aug 29 17:15:15 [5168]: File "/home/domain.com/apps/core-api/env/lib/python3.6/site-packages/flask_restful/__init__.py", line 595, in dispatch_request
Aug 29 17:15:15 [5168]: resp = meth(*args, **kwargs)
Aug 29 17:15:15 [5168]: File "/home/domain.com/apps/core-api/env/lib/python3.6/site-packages/flask_jwt_extended/view_decorators.py", line 102, in wrapper
Aug 29 17:15:15 [5168]: verify_jwt_in_request()
Aug 29 17:15:15 [5168]: File "/home/domain.com/apps/core-api/env/lib/python3.6/site-packages/flask_jwt_extended/view_decorators.py", line 31, in verify_jwt_in_request
Aug 29 17:15:15 [5168]: jwt_data = _decode_jwt_from_request(request_type='access')
Aug 29 17:15:15 [5168]: File "/home/domain.com/apps/core-api/env/lib/python3.6/site-packages/flask_jwt_extended/view_decorators.py", line 284, in _decode_jwt_from_request
Aug 29 17:15:15 [5168]: raise NoAuthorizationError(errors[0])
Aug 29 17:15:15 [5168]: flask_jwt_extended.exceptions.NoAuthorizationError: Missing Authorization Header
Я пытался отследить эту проблему здесь , но не добился успеха.