1.创建角色,绑定权限数据
2.创建员工,绑定角色,获取角色权限数据
3.将路由表routes分为静态路由表routes和动态路由表asyncRoutes,把需要做权限判断的路由放到动态路由表,
并给每个动态路由添加对应的权限标识,路由系统初始化时只绑定展开的静态路由表
4.使用员工账号登录,获取账号权限数据,根据动态路由表具体需求,格式化权限数据
5.使用格式化权限数据筛选动态路由表,将筛选得到的动态路由表通过router.addRoute()添加到路由系统中(注意特殊
角色判断,特殊角色返回的权限数据一般比较特殊,所以筛选得到的动态路由表可能不符合实际角色权限,需要单独确
定动态路由表)
6.当登录状态失效,无论是token过期还是主动退出登录,都应该重置路由并且清空用户信息,以便下次登录重新获取
用户信息并筛选动态路由,否则下次登录,路由系统中还是上一次登录的用户所拥有的路由权限
create newRouter = createRouter()
router.matcher = newRouter.matcher
this.$store.commit('user/delUserProfile')
完成这一步,已经基本实现了通过RBAC控制路由权限的目的,每一个账号都匹配了角色的权限路由,只能
访问当前账号所属角色有权限数据的路由
7.一般路由跳转在页面中都有对应路由菜单辅助,角色没有权限访问的路由不需要显示到角色的路由菜单中,实现过程
是:将筛选得到的动态路由表存到vuex中,将通过路由系统初始化的静态路由表router.options.routes控制的路由菜
单,改为由vuex响应式数据控制,实现路由菜单与账号动态路由表+静态路由表同步。