后台访问权限控制

问题

  1. 解决普通用户登录之后直接访问后台具体的视图函数的问题
  2. 如果是普通用户访问后台的视图函数,直接跳转到项目主页,不再执行后续的逻辑判断
  3. 后台后续要实现多个视图函数,如果每一个函数内部都去判断用户权限,那么代码重复率高,冗余代码较多
  4. 所以得有一个统一判断入口,后台模块中,除了登录页面,后台的其他页面都要判断是否具有管理员权限
  5. 采用的方式为:请求勾子中的 before_request,来请求之前进行判断

代码实现

@admin_blu.before_request
def before_request():
    # 判断如果不是登录页面的请求
    if not request.url.endswith(url_for("admin.admin_login")):
        user_id = session.get("user_id")
        is_admin = session.get("is_admin", False)

        if not user_id or not is_admin:
            # 判断当前是否有用户登录,或者是否是管理员,如果不是,直接重定向到项目主页
            return redirect('/')

猜你喜欢

转载自blog.csdn.net/brook_/article/details/81006168