之前对前端控制权限做了一些想法和项目实践,后来新公司对之前的想法进行了实践,对于权限尝试了两种方式:
1、后端返回所有权限的code码,前端每次页面跳转的时候都对code码进行比对,成功的就跳转不成功就停留当前页面
2、这个方式就是后端返回前端需要的所有的参数
优点:
第一个的优点是可以展示所有的菜单栏,只有用户跳转没有权限的菜单栏才会给出弹出框提示;
第二个的优点是所有的权限都是后端配置,前端不参与权限的校验;
缺点:
最大的缺点就是如果知道了路由,登录后直接在浏览器打开的话是没办法拦截的;
这个缺点如果设置一个路由守卫,也可以解决掉,但是感觉有些繁琐。
最新型号:
new VueRouter({ mode: 'hash', base: process.env.BASE_URL, scrollBehavior: () => ({ y: 0 }), routes:routerMap })
我们在new router的时候有个routes配置,这个里面放置的是所有的路由信息,我们在获取到权限信息后对routerMap进行过滤,将没有权限的路由配置都过滤掉,这样配合上面两种方法进行权限的配置就会安全和简洁很多