使用Flask处理python-social-auth异常的正确方法是什么?

问题描述 投票:0回答:1

我正在向Flask应用添加PSU,到目前为止一切进展顺利,但我不知道如何处理PSU引发的异常。一种此类异常是social.exceptions.AuthCanceled,在用户决定取消身份验证过程时引发。我显然想抓住它并显示一些消息。

我通过创建新的中间件在Django中找到了如何执行此操作的similar question。但是,这种方法似乎只使用在PSU的django_app中定义的middleware.py(而不在flask_app中定义)。

我有一些Flask的经验,但是之前没有添加过中间件,而且我不确定这是正确的方向。

python flask python-social-auth
1个回答
1
投票

UPDATE

尝试定义errorhandler(文档位于http://flask.pocoo.org/docs/api/#flask.Flask.errorhandler),如下所示:

@app.errorhandler(500)  # since exceptions will produce 500 errors
def error_handler(error):
    if isinstance(error, SocialAuthBaseException):
        return redirect('/error')

此行下方的解决方案不起作用


尝试使用teardown_requesthttp://flask.pocoo.org/docs/reqcontext/#teardown-callbacks),像这样

@app.teardown_request
def teardown_handler(exception=None):
    if exception and isinstance(exception, SocialAuthBaseException):
        return redirect('/error')
© www.soinside.com 2019 - 2024. All rights reserved.