我正在玩Flask。我使用Flask-Restful和Flask-JWT创建了一个API。
当我在Flask中Debug=True
,并且我没有发送授权标题时,我收到的答复为
但是,{{3}}时debug=False
1}},返回的响应是具有此堆栈跟踪的内部服务器错误,
[2017-01-19 19:43:10,753] ERROR in app: Exception on /api_0_1/deals [GET]
Traceback (most recent call last):
File "C:\Users\ARFATS~1\Desktop\Dealflow\venv\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\ARFATS~1\Desktop\Dealflow\venv\lib\site-packages\flask\app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\ARFATS~1\Desktop\Dealflow\venv\lib\site-packages\flask_restful\__init__.py", line 477, in wrapper
resp = resource(*args, **kwargs)
File "C:\Users\ARFATS~1\Desktop\Dealflow\venv\lib\site-packages\flask_jwt\__init__.py", line 176, in decorator
_jwt_required(realm or current_app.config['JWT_DEFAULT_REALM'])
File "C:\Users\ARFATS~1\Desktop\Dealflow\venv\lib\site-packages\flask_jwt\__init__.py", line 155, in _jwt_required
headers={'WWW-Authenticate': 'JWT realm="%s"' % realm})
JWTError: Authorization Required. Request does not contain an access token
我希望Flask-JWT响应Debug = True时的响应。但是,我不能在生产服务器上使用调试。
一种方法是使用我自己的jwt_required装饰器。还有其他方法吗?
另外,如果有的话,我很乐意知道我失踪了什么。
谢谢
答案 0 :(得分:0)
您需要将此设置添加到烧瓶应用中:
{
firstname: 'john',
lastname: 'smith',
arg: 'jobtitle',
value: 'brewer'
}
当debug为true时,默认情况下PROPAGATE_EXCEPTIONS也设置为true。
或许考虑检查一下flask-jwt-extended(https://github.com/vimalloc/flask-jwt-extended),它会为你处理PROPAGATE_EXCEPTIONS。它旨在取代废弃的flask-jwt库,并在使用JWT时添加一些便利(例如刷新令牌,轻松地向JWT添加自定义数据,新鲜与非新鲜令牌等)。完全披露,我是该扩展的作者。
干杯。