B端项目菜单类型怎么划分啊?

img

一个大型项目的权限路由可见的有目录、菜单、摁钮,那么不可见的但也有权限的路由怎么分配?比如不在菜单栏显示,但平台勾选路由后可以访问

img

img

可以仿照element-admin-vue 开源后台管理系统做
也可以直接复用
案例:https://panjiachen.gitee.io/vue-element-admin/#/permission/directive
文档:https://panjiachen.github.io/vue-element-admin-site/zh/guide/essentials/permission.html

对于不在菜单栏显示的路由,可以考虑在代码中进行权限校验。比如,在代码中添加一个类似于 isAuthorized() 的方法,在该方法中根据当前用户的权限信息判断该用户是否有权访问该路由。

这个方法可以在路由被请求之前调用,如果判断该用户没有权限访问该路由,则可以返回一个未授权的错误信息。否则,允许用户访问该路由。

在实现上,可以在路由处理函数之前添加中间件,中间件会先进行权限校验,如果权限校验失败,则直接返回未授权的错误信息。比如,使用 Express 框架,可以这样实现:


function checkAuthorization(req, res, next) {
  if (hasAuthorization(req.user, req.path)) { // hasAuthorization() 方法用于校验权限
    next();
  } else {
    res.status(401).send('Unauthorized');
  }
}

app.get('/hidden-route', checkAuthorization, (req, res) => {
  // 处理路由请求
})

这样,当用户访问 /hidden-route 路由时,会先执行 checkAuthorization 中间件,如果权限校验失败,则直接返回未授权的错误信息,否则允许用户访问该路由。