权限设计

前言

现在在公司以vue作为主导,之前的项目是老项目,用lay-UI做的权限设计,现在我想以vue重构下架构。
参阅了这个手摸手,带你用vue撸后台 系列二(登录权限篇),人家通过改变路由内部结构的匹配,来实现对权限的响应,也就是说他是将路由动态化,将一个新的routes对象与之匹配。
这个博主实现的代码取巧了,vue官网并没有这样的api介绍,完全是看vue-router源代码实现的解决办法。我不知道这样会不会造成内存的多余,可能是我多虑了。
官网只有追加路由,并没有路由的替换,这样对权限的设计有一定的影响。

我的思路

我的思路是先将所有的路由挂载上自己的vue程序之中,将权限信息保存在store中,暴露一个actionhasPermission,然后用路由守卫访问该action判断该路由是否有权限的访问,或者控制跳转。
实现步骤:

  • store维护一个权限数组,包括路由、跳转、可读写等信息的单个对象,其初始化为空[]
  • 设置一个actionhasPermission,处理路由守卫传递进来的路由是否合法。
  • hasPermission处理流程:判断权限数组是否为空?是,先异步获取当前用户可访问的权限数组(比如普通用户、游客),获取后,再进行判断路由是否合法。
  • 判断后,进行相应的放行或者404403login等等页面的跳转

参考链接

RBAC权限系统分析、设计与实现
权限系统设计
手摸手,带你用vue撸后台 系列二(登录权限篇)
权限设计

原文地址:https://www.cnblogs.com/panshaojun/p/14272215.html