权限管理
权限管理就是让不同 的用户只能访问自己权限内的资源,有以下几种
路由权限:用户登录后只能看到自己权限内的导航菜单,且只能访问自己权限内的路由地址。
视图权限:用户只能看到自己权限内的内容和按钮。
请求权限:越权请求将其拦截
权限控制
接口权限:用户登录后可以得到一个token,将token存起来,通过axios请求拦截器进行拦截,请求头里要携带token。
按钮权限:用v-if判断,当如果页面很多的时候,每个页面都要获取用户权限role和路由表里的meta.btnuse,然后再做判断,比较繁琐
菜单权限:路由和菜单分离,菜单由后台返回。
一般路由比较多,可以应用初始化时,只挂载不需要权限控制的路由,拿到后端返回的菜单后,后端返回的菜单是经过权限过滤的,根据菜单与路由的对应关系,筛选出可以访问的路由,通过addRoutes动态挂载。
路由权限:初始化的时候先挂载不需要权限控制的路由,例如登录页,如果用户通过url访问,则会跳转到404页面,登录后,获取用户的权限信息,然后筛选有权限访问的路由,在全局路由守卫里进行addRoutes添加路由
思路
后端返回用户权限,前端根据用户权限处理得到左侧菜单;
所有路由在前端定义好,根据后端返回的用户权限筛选出需要挂载的路由,然后是有addrouters动态挂载路由