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

时间:2014-02-23 13:35:31

标签: python flask python-social-auth

我正在将一个PSU添加到Flask应用程序中,到目前为止一切都进展顺利,但我无法弄清楚如何处理PSU引发的异常。一个这样的例外是social.exceptions.AuthCanceled,当用户决定取消身份验证过程时引发。我显然想抓住它并显示一些消息。

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

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

1 个答案:

答案 0 :(得分:1)

<强>更新

尝试定义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')