我正在向Flask应用添加PSU,到目前为止一切进展顺利,但我不知道如何处理PSU引发的异常。一种此类异常是social.exceptions.AuthCanceled,在用户决定取消身份验证过程时引发。我显然想抓住它并显示一些消息。
我通过创建新的中间件在Django中找到了如何执行此操作的similar question。但是,这种方法似乎只使用在PSU的django_app中定义的middleware.py(而不在flask_app中定义)。
我有一些Flask的经验,但是之前没有添加过中间件,而且我不确定这是正确的方向。
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_request
(http://flask.pocoo.org/docs/reqcontext/#teardown-callbacks),像这样
@app.teardown_request
def teardown_handler(exception=None):
if exception and isinstance(exception, SocialAuthBaseException):
return redirect('/error')