一般来说鉴权我们主要针对rbac鉴权模式来进行控制主要分为:(组件(页面)鉴权路由鉴权)
第一种页面鉴权(组件鉴权)
用户有没有权限访问该页面,或者判断用户有没有通往该页面路由的权限
①.组件鉴权
用户有没有权限访问页面的时候:通过路由守卫结合后端返回的token进行页面跳转之前的拦截并查看token是否过期以及是否拥有查看该页面的权限
②.路由鉴权
判断用户有没有通往该页面路由(菜单,导航)的权限:
纯前端处理:在写路由表的时候 我们会在每个路由下加上meta,然后在meta写入可以访问该路由或页面的角色信息,然后我们可以通过该meta(买特)下的信息使用addrouter(唉的入特)控制该路由的显隐
前后端配合:每次登录的时候都要从后端获取该token下的路由表,保存在vuex里面,在通过addrouter动态渲染该token下的路由或导航
第二种ui鉴权 一般来说ui鉴权指的就是按钮鉴权
ui鉴权他的颗粒度很细,所以相对来说难度较大,我们可以通过统一的自定义指令来进行配置
处理ui鉴权简单的方法是:
我们可以获取token下的角色信息,用v-if处理该ui的显隐,但是这种方式的缺点也很明显,不宜与统一管理,
所有我们需要集中封装一个自定义指令,在自定义指令中集中处理鉴权的逻辑然后分发在每个需要鉴权的按钮上。