vue权限管理
1 权限是对特定资源的访问许可,所谓权限控制,也就是确保用户只能访问到被分配的资源,
而前端权限归根结底是请求的发起权,请求的发起可能有下面两种形式触发
• 页面加载触发
• 页面上的按钮点击触发
前端权限控制可以分为四个方面:
• 接口权限 接口权限目前一般采用jwt的形式来验证,没有通过的话一般返回401,跳转到登录页面重新进行登录登录完拿到token,将token存起来,通过axios请求拦截器进行拦截,每次请求的时候头部携带token
• 按钮权限 1按钮权限也可以用v-if判断,但是如果页面过多,每个页面页面都要获取用户权限role和路由表里的meta.btnPermissions,然后再做判断 2通过自定义指令进行按钮权限的判断
• 菜单权限 菜单权限可以理解成将页面与路由进行解耦
• 路由权限 初始化即挂载全部路由,并且在路由上标记相应的权限信息,每次路由跳转前做校验;
这种方式存在以下四种缺点
1加载所有的路由,如果路由很多,而用户并不是所有的路由都有权限访问,对性能会有影响。
2全局路由守卫里,每次路由跳转都要做权限判断。
3菜单信息写死在前端,要改个显示文字或权限信息,需要重新编译
4菜单跟路由耦合在一起,定义路由的时候还有添加菜单显示标题,图标之类的信息,而且路由不一定作为菜单显示,还要多加字段进行标识