我是写新瓶子的新手,目前使用flask-principal作为我的授权机制.
当用户尝试访问没有所需权限的URL时,flask-principal会引发PermissionDenied Exception.
当用户尝试访问没有所需权限的URL时,flask-principal会引发PermissionDenied Exception.
它导致我的系统抛出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'))