# 权限管理

权限控制是中后台系统中常见的需求之一,你可以利用 San Admin 提供的权限控制脚手架,实现一些基本的权限控制功能。

# 角色和权限

San Admin 提供的方案为前端固定路由表和权限配置,由后端提供用户权限标识,来识别是否拥有该路由权限。

实现方式是通过获取当前用户的权限去比对路由表,生成当前用户具有的权限可访问的路由表,通过 router.add 动态挂载到 router 上。

# 步骤如下

  1. 项目启动后,通过router.listen监听路由的变化, 当切换路由的时候,判断用户角色,如果用户角色已经存在,说明已经拿到用户信息,并且已经生成了相应权限的路由和菜单。

  2. 当用户角色不存在的时候,获取用户信息和拥有权限 store.dispatch('getUserInfo')

  3. 用户信息获取成功后, 调用 store.dispatch('permission.generateRoutes', userInfo) 根据获取到的用户信息构建出一个已经过滤好权限的路由信息。

  4. 将构建的路由结构信息利用 san-router 提供的动态增加路由方法 router.add 加入到路由表中。

  5. 访问相应的请求页面。