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
有没有人知道更好的方法来做到这一点?