<script>
// 添加请求拦截器
axios.interceptors.request.use((config) => {
return new Promise(resolve, reject => {
getAccessToken().then(res => {
if (res) {
config.headers.Authorization = res;
resolve(config);
} else {
reject("");
}
}).catch(err => {
resolve(config);
})
});
}, err => {
return Promise.reject(err);
});
function getAccessToken() {
return new Promise(resolve, reject => {
let accessToken = window.localStorage.getItem("accessToken");
let refreshToken = window.localStorage.getItem("refreshToken");
if (accessToken) {
// 使用刷新token重新获取token
/*
********************
*/
resolve(accessToken);
} else {
reject("get access token fail");
}
});
}
</script>
考虑到使用到了刷新token用于更新token,而获取新的token是异步获取的,之前直接返回config,可能会导致token没有带上就去请求,所以返回promise