-
登陆权限首先第一个我们项目考虑用户登录的权限,等用户登录成功,才有权访问登录的页面,这个相对来说比较简单,可以在全局守卫中通过判断是否有token即可
-
第二个: token过期
- 权限响应拦截器中监听后端响应回来的状态码是否401,token过期业务逻辑(每个用户登入权限不同,所以能够访问的页面权限和菜单权限以及按钮权限都不同)
-
token过期: 两小时, 通过refresh_token, 无感(我们通过代码在背后偷偷的通过refresh_token 发请求换取新的token)refresh_token: 真正过期一般为1个月,退出重新登录
-
应该通过refresh_token.换取新的token,如果refresh_token也过期了则进入登录页
-
第三个: 路由权限
- 路由分为静态路由表和动态路由表,动态路由表会通过后端返回的用户的权限进行筛选,和我们自己的路由规则meta的标识进行对比,从而筛选出结果,但是这里会有bug,无法进入动态添加的路由规则,通过addrouters动态添加路由表,还需要通过next('to.path'),菜单无法渲染,菜单vue-element-admin使用的数据是$router.options.routes获取的所有路由,无法拿到动态添加的,所以此时我们需要自己通过vuex维护一份路由表,将自己维护的路由表进行菜单渲染
- 按钮权限:通过封装自定义指令,自定义指令内部查询是否有该权限,如果没有将该按钮节点remove