1
我正在使用Flask-Security擴展,並且不能爲我的生活弄清楚擴展初始化時擴展中的哪個位置可以傳入未經授權的處理程序。這對我來說很重要,因爲我不想在沒有必要權限的情況下將用戶重定向到另一個端點。我希望他們在他們所在的網址中查看它,以便他們保留他們沒有權限訪問的url的上下文。我的解決辦法是猴子補丁到擴展方法的第一個請求到來之前:燒瓶安全未經授權的回調
@app.before_first_request
def monkey_patch():
"""Monkey patching the flasksecurity callback"""
current_app.extensions['security']._unauthorized_callback=lambda: abort(401)
然後我用我的app.errorhandler照顧錯誤並返回相應的響應代碼。
@app.errorhandler(401)
def unauthorized(e):
return 'You not authorized to visit this page', 401
有沒有人知道更好的方法來做到這一點?