首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该如何处理在@jwt_required装饰器中引发的异常?(在flask-jwt-extended中)

我应该如何处理在@jwt_required装饰器中引发的异常?(在flask-jwt-extended中)
EN

Stack Overflow用户
提问于 2019-02-12 19:01:53
回答 1查看 3.2K关注 0票数 3

我有一个函数与@jwt_required装饰器。

代码语言:javascript
运行
复制
class Test(Resource):
    @jwt_required
    def get(self):
        return {"test": "ok" }

当设置了正确的HTTP报头时,它工作得很好,即

Authentication: Bearer [TOKEN]

但当令牌无效/错误或被篡改时,将引发jwt.exceptions.DecodeError:

代码语言:javascript
运行
复制
File "env/lib/python3.6/site-packages/flask_restplus/resource.py", line 44, in dispatch_request
    resp = meth(*args, **kwargs)
  File "env/lib/python3.6/site-packages/flask_jwt_extended/view_decorators.py", line 103, in wrapper
    verify_jwt_in_request()
  File "env/lib/python3.6/site-packages/flask_jwt_extended/view_decorators.py", line 32, in verify_jwt_in_request
    jwt_data = _decode_jwt_from_request(request_type='access')
  File "env/lib/python3.6/site-packages/flask_jwt_extended/view_decorators.py", line 267, in _decode_jwt_from_request
    decoded_token = decode_token(encoded_token, csrf_token)
  File "env/lib/python3.6/site-packages/flask_jwt_extended/utils.py", line 80, in decode_token
    encoded_token, verify=False, algorithms=config.algorithm
  File "env/lib/python3.6/site-packages/jwt/api_jwt.py", line 84, in decode
    payload, _, _, _ = self._load(jwt)
  File "env/lib/python3.6/site-packages/jwt/api_jws.py", line 183, in _load
    raise DecodeError('Not enough segments')
jwt.exceptions.DecodeError: Not enough segments

我不能依赖客户端总是使用正确的令牌。我无法捕获异常,因为它是在装饰器中引发的,而不是在我自己的函数中引发的。因此,结果是一个http 500错误。我应该如何更优雅地处理异常?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-12 22:46:21

Flask-jwt-extended应该会很好地为您处理这些问题。如果没有,您可能正在使用另一个破坏本地flask功能的扩展(例如flask-restful )。您可以尝试设置此选项来修复它app.config[‘PROPAGATE_EXCEPTIONS’] = True,或者如果您使用的是另一个导致问题的flask扩展,请查看此线程以获得一些建议https://github.com/vimalloc/flask-jwt-extended/issues/86

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54648603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档