一、封装axios
1.src 目录中新建utils文件夹
2.utils文件中建立request.js文件
3.在request.js页面中导入axios
4.设置请求拦截器
响应拦截器
二、 封装api函数
1.先导入封装好的axios
三、无感刷新
当token过期的时候,刷新token,前端需要做到无感刷新token,即刷token时要做到用户无感知,避免频繁的登录,用户不用刷新页面 系统内容自己重新发送请求 渲染页面,这次系统重新发送的请求 就是把第二次没有成功发送的请求再发一遍
因为token过期 获取用户信息这个请求 没有成功发送 服务器返回了一个error信息 但是在这个error报错里config里 存放了我们获取用户信息请求的所有内容。
浏览器会自己把之前失败的请求 换成新的token再发一遍 用户不需要刷新页面 就可以在两个小时后 有新的token 并且页面不会出现任何破绽。
四、refresh_token过期处理
refresh_token过期 那么提示(toast)用户登陆失效 打回登陆页(this.$router.push(/login))
使用try{}catch{} 处理请求失败的情况
也就是把整段请求代码放在try{}里进行检验 如果请求失败 就会执行catch{}里的代码。