我正在使用Python 3.6在生产模式下运行Flask Restful服务器,并且正在访问需要jwt身份验证的端点,但是我一直收到“ NoAuthorizationError Missing Authorization Header”错误信息。奇怪的是,使用Postman将完全相同的请求发送到我的Mac上的本地版本的Flask应用程序时,它可以正常工作而没有任何错误。问题仅出现在生产服务器上,所有pip包的版本也完全相同。
更新:我在生产服务器上使用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
我一直在尝试跟踪这个问题,在这里,但是没有成功。