拦截器配置
1.请求拦截器,携带token
this.instance.interceptors.request.use(
config => {
也是用了pinia的持久化,所以模型pinia的state里面的属性会存储在localStorage中,pinia中的user模块中存储了token
const token= localStorage.getItem('token')
token && (config.headers.Authorization = `Bearer ${token}`)
return config
},
err => {
return Promise.reject(err);
}
);
2.响应拦截器,处理成功时返回的数据和出错时的处理
this.instance.interceptors.response.use(
res => {
return res.data;
},
err => {
if (err.response && err.response.status == 401) {
userStore.logout()
const fullPath = encodeURIComponent(router.currentRoute.value.fullPath)
router.push(`/login?redirectUrl=${fullPath}`)
}
return Promise.reject(err);
}
);