# 权限管理
权限控制是中后台系统中常见的需求之一,你可以利用 San Admin 提供的权限控制脚手架,实现一些基本的权限控制功能。
# 角色和权限
San Admin 提供的方案为前端固定路由表和权限配置,由后端提供用户权限标识,来识别是否拥有该路由权限。
实现方式是通过获取当前用户的权限去比对路由表,生成当前用户具有的权限可访问的路由表,通过 router.add 动态挂载到 router 上。
# 步骤如下
项目启动后,通过router.listen监听路由的变化, 当切换路由的时候,判断用户角色,如果用户角色已经存在,说明已经拿到用户信息,并且已经生成了相应权限的路由和菜单。
当用户角色不存在的时候,获取用户信息和拥有权限
store.dispatch('getUserInfo')
。用户信息获取成功后, 调用
store.dispatch('permission.generateRoutes', userInfo)
根据获取到的用户信息构建出一个已经过滤好权限的路由信息。将构建的路由结构信息利用 san-router 提供的动态增加路由方法
router.add
加入到路由表中。访问相应的请求页面。