/ / Який правильний спосіб поводження з винятками python-social-auth при використанні Flask? - пітон, колба, пітон-соціал-авт

Який правильний спосіб обробки виключень python-social-auth при використанні фляга? - python, flask, python-social-auth

Я додаю PSU до програми Flask, і все відбуваєтьсяпоки що досить добре, але я не можу зрозуміти, як поводитися з винятками, піднятими PSU. Одним з таких винятків є social.exceptions.AuthCanceled, піднімається, коли користувач вирішує скасувати процес авторизації. Я, очевидно, хотів би зрозуміти це і відобразити якесь повідомлення.

Я знайшов a подібне питання про те, як це зробити в Django, створивши нове ПО. Однак, схоже, такий підхід використовує middleware.py, визначений лише у django_app PSU (а не у flask_app).

Я маю певний досвід роботи з Flask, але раніше не додавав Middleware, і не впевнений, що це правильний напрямок.

Відповіді:

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_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")