gpt4 book ai didi

python - Flask-Principal 处理PermissionDenied异常的最佳实践

转载 作者:太空狗 更新时间:2023-10-29 21:29:14 25 4
gpt4 key购买 nike

我是编写 flask 的新手,目前使用 flask-principal 作为我的授权机制。当用户试图在没有所需权限的情况下访问 url 时,flask-principal 会引发 PermissionDenied 异常。

它导致我的系统抛出一个 500 内部服务器 错误。

我怎样才能捕获特定的异常并将用户重定向到警告页面?如果您可以分享一个代码示例,那将非常有帮助。

最佳答案

您可以告诉 Flask-Principal 您想要引发特定的 HTTP 错误代码:

@app.route('/admin')
@admin_permission.require(http_exception=403)
def admin(request):
# ...

现在flask.abort()将被调用而不是引发 PermissionDenied。对于 403 错误代码,您可以注册一个 error handler。 :

@app.errorhandler(403)
def page_not_found(e):
session['redirected_from'] = request.url
return redirect(url_for('users.login'))

其中 url_for('users.login') 将返回登录页面的路由 URL。

关于python - Flask-Principal 处理PermissionDenied异常的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20069150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com