对于前端控制权限,使得不同用户登录系统看到不同页面,有几点想不明白的地方
方法一:把全部的路由地址全部维护在一张路由表里面,在meta中定义哪些用户可以访问当前路由,不符合当前角色的,拦截到403页面
方法二:动态路由方法,定义好所有用户都可以访问的路由白名单,像['login','register']等静态路由,根据登录信息返回的角色信息,在异步路由中遍历出来符合当前角色信息的路由,然后通过 addRouters 方法进行添加。
以上两种方法都可以实现前端路由控制权限,到底有什么区别,各自利弊是什么?想不明白
第一种只适合定死了几种角色的显示权限, 项目较小。
正规的项目一般都采用第二种,更加灵活,权限控制也更加全面。
第二种一般前端只储存每个页面对应的文件,例如:
整个router除了基础的登陆等页面,其他全部以后端返回的为准, 这样可以在后台去设置菜单名称、图标以及排序, 可以灵活控制多角色不同菜单的显示。 在实际应用里面除了页面显示权限, 还会涉及到操作权限(添加、修改、删除)等等,还有数据权限,也可以后端进行灵活控制。