Я пытаюсь внедрить обновление токена в мое приложение vue.js. Пока это работает, так как он обновляет токен в хранилище для ответа 401, но все, что мне нужно, это заставить перехватчик повторить исходный запрос потом.
main.js
axios.interceptors.response.use(
response => {
return response;
},
error => {
console.log("original request", error.config);
if (error.response.status === 401 && error.response.statusText === "Unauthorized") {
store.dispatch("authRefresh")
.then(res => {
//retry original request???
})
.catch(err => {
//take user to login page
this.router.push("/");
});
}
}
);
store.js
authRefresh(context) {
return new Promise((resolve, reject) => {
axios.get("auth/refresh", context.getters.getHeaders)
.then(response => {
//set new token in state and storage
context.commit("addNewToken", response.data.data);
resolve(response);
})
.catch(error => {
reject(error);
});
});
},
Я могу зарегистрировать error.config
в консоли и увидеть исходный запрос, но есть ли у кого-нибудь какие-либоИдея, что я делаю отсюда, чтобы повторить исходный запрос? а также не допускать повторения цикла снова и снова в случае сбоя.
Или я делаю это совершенно неправильно? Конструктивная критика приветствуется.