RBAC
基于角色的权限控制:用户->角色->权限
权限有两种,一种是路由菜单权限(用户无法访问对应的路由),另外一种是按钮权限
菜单权限
基于路由拦截的权限控制
菜单不会隐藏,点击则跳转到403
一般用户登录后,后台返回该用户可以使用的路由表。这个路由表返回后,可以进行对应的路由拦截,如果要跳转的路由不在对应的路由表中,则跳转到403
- 无法隐藏对应的不可用菜单 会导致用户不知道自己有哪些权限
利用路由拦截 + 菜单路由过滤的操作
所有路由都生效,菜单隐藏,手动输入url访问没有权限的路由则跳转到403
用户登录后,根据后台返回的路由表roles,然后对我们前端的菜单路由进行筛选,得到只符合对应权限的路由信息。然后作为渲染菜单加入。具体路由的跳转,靠路由拦截进行拦截
- 可以隐藏用户没有权限的菜单
对我们的菜单路由进行对应的过滤,将所有的不符合权限的路由全都过滤出去,得到的就是符合路由的权限
利用addRoute动态添加路由
只有有权限的路由生效,没有权限的路由不会生效,访问没有权限的路由,则跳转到404,菜单也会隐藏
实现的效果和上面的方式一致,不需要再使用路由拦截,利用动态添加路由的操作,只把有权限的路由添加到对应的路由表中,没有权限的路由不存在,会比上面你的方式有更多的问题需要解决