flask jwt extended-Catch Rise RevokedToken错误(';令牌已被吊销';)

flask jwt extended-Catch Rise RevokedToken错误(';令牌已被吊销';),jwt,token,bearer-token,flask-jwt-extended,Jwt,Token,Bearer Token,Flask Jwt Extended,我已经试过阅读文档,也试过改变默认行为来处理错误(链接显示了如何处理过期的令牌),并在google中搜索每一个我能做的关键字组合,但似乎没有人有这样的例子 我尝试使用@jwt.reversed_token_loader来处理RevokedToken错误,但它似乎不起作用,因为我像这样应用它 @jwt.revoked_token_loader def revoked_token_response(revoked_token): jwtkn = rev

我已经试过阅读文档,也试过改变默认行为来处理错误(链接显示了如何处理过期的令牌),并在google中搜索每一个我能做的关键字组合,但似乎没有人有这样的例子

我尝试使用@jwt.reversed_token_loader来处理RevokedToken错误,但它似乎不起作用,因为我像这样应用它

    @jwt.revoked_token_loader
        def revoked_token_response(revoked_token):
            jwtkn = revoked_token['jti']
            return jsonsify({
                'msg': 'token {} already been revoked!'.format(jwtkn)
            )}, 401
实际上,我不知道链接上的示例如何处理过期令牌的参数为'expired_token',是否像我在上面对'reversed_token'所做的那样进行自我声明??据我所知,“jti”就像flask jwt扩展包中的默认值,因为每当我不使用它时,我都会看到错误(在我的db中,它是不同的,但根本没有问题)

我试着遵循这个教程,在我这方面效果很好(以及他的原始代码源代码),但我发现这个教程在撤销令牌上也没有catch异常

我使用邮递员,如果基于教程链接,下面是我如何得到它的

    i do login
    i use the access token generated to access protected routes ('/secrets')
    i do logout
    i use again the access token generated to access protected routes
在最后一个错误之后,我在服务器端(ide)上出现以下错误:

在《邮递员》中,我得到的是:

    {
        'message': 'Internal Server Error'
    }
我的目标是发送自定义json响应,而不是“内部服务器错误”

编辑:
我不是编程方面的天才,一个想练习python安全web开发的初学者。我还不太了解decorator在应用程序等方面的工作原理。所以我不知道是否有其他人调整了flask jwt扩展包来解决这些问题。

返回500错误通常是因为在其他烧瓶扩展中的bug以及如何与本地烧瓶错误处理程序交互。您可以在这里找到关于它的一堆讨论,但是TL;DR版本可能需要设置<代码> App.CONFIG [传播程序异常]=Trime< /Cord>如果使用像烧瓶ReStul之类的东西,或者使用烧瓶RESPLOL: < /P>使用类似的黑客攻击。
jwt = JWTManager(app)
api = Api()
jwt._set_error_handler_callbacks(api)
如果这些对您没有帮助,请查看链接的github问题,如果没有任何帮助,请回复该问题,详细说明您的设置


干杯。

Whoa?!这太棒了!我真没想到你会调查它!哈哈哈!非常感谢你的回复,是的!我确实使用了Flask Restful和“app.config['PROPAGATE\u EXCEPTION']=True“对我来说绝对有效。再次感谢,我一开始不知道该软件包在其他软件包上存在冲突问题,因此我没有研究它。感谢您的良好睡眠:)当然,我很高兴这有帮助!:)在flask restful或flask restplus中,核心烧瓶的某个部分断裂是很愚蠢的,但遗憾的是,从我的扩展中,我对此无能为力。在那些描述错误的项目中,有一些github问题,所以希望他们最终能够修复他们的东西,这将是一个更加无缝的体验。
jwt = JWTManager(app)
api = Api()
jwt._set_error_handler_callbacks(api)