权限管理

权限管理⼀般需求是⻚⾯权限和按钮权限的管理

具体实现的时候分后端和前端两种⽅案:

前端⽅案:

  1. 会把所有路由信息在前端配置,通过路由守卫要求⽤户登录,⽤户登录后根据⻆⾊过滤出路由表。

  2. 配置⼀个 asyncRoutes 数组,需要认证的⻚⾯在其路由的 meta 中添加⼀个 roles 字段,等获取⽤户⻆⾊之后取两者的交集,若结果不为空则说明可以访问。

  3. 此过滤过程结束,剩下的路由就是该⽤户能访问的⻚ ⾯,最后通过 router.addRoutes(accessRoutes) ⽅式动态添加路由即可。

后端⽅案:

  1. 会把所有⻚⾯路由信息存在数据库中,⽤户登录的时候根据其⻆⾊查询得到其能访问的所有⻚⾯路由 信息返回给前端
  2. 前端再通过 addRoutes 动态添加路由信息

按钮权限的控制:

通常会实现⼀个指令,例如 v-permission ,将按钮要求⻆⾊通过值传给v-permission指 令,在指令的 moutned 钩⼦中可以判断当前⽤户⻆⾊和按钮是否存在交集,有则保留按钮,⽆则移除按钮。

posted @ 2022-08-20 07:54  一星一辰  阅读(56)  评论(0编辑  收藏  举报