Итак, у меня есть Backend с ASP net core 3.0 с токеном Jwt, и я реализовал токен refre sh в Api, поэтому у меня проблема с Ax ios и метод refre sh token, поэтому У меня есть много проверочных кодов, которые приходят из Backend, а также я хочу реализовать токен refre sh с перехватчиком Ax ios, но это не сработало вообще, поэтому я надеюсь, что кто-то подскажет, мне удалось чтобы заставить его работать, но он не повторяет первоначальный запрос в первый раз, я должен обновить sh страницу, чтобы он заработал. это подсказка в моем коде Axe ios.
axios.interceptors.request.use(
config => {
const token = getJwt();
if (token) {
config.headers["Authorization"] = "Bearer " + token;
}
// config.headers['Content-Type'] = 'application/json';
return config;
},
error => {
Promise.reject(error);
}
);
const originalRequest = error.config;
console.log("this is orginal request ", originalRequest);
const expectedError =
error.response &&
error.response.status >= 400 &&
error.response.status < 500; if (!expectedError) {
logger.log(error.response);
toast.error("An unexpected error occurrred.");
return Promise.reject(error);
} if (
error.response.status === 401 &&
originalRequest.url === refreshTokenUrl
) {
console.log("not refreeeeeehhhhh here error 401 with referech url ");
CleanJwt();
window.location = "/login";
return Promise.reject(error);
}
if (error.response.status == 401 && !originalRequest._retry) {
let tokenRefresh = {
token: getJwt(),
refreshToken: getRefreshToken()
};
await axios.post(refreshTokenUrl, tokenRefresh).then(response => {
console.log(response);
if (response.status === 200) {
originalRequest._retry = true;
localStorage.setItem("token", response.data.token);
localStorage.setItem("refreshToken", response.data.refreshToken);
originalRequest.headers.Authorization = "Bearer " + response.data.token;
return axios(originalRequest);
}
});
return Promise.resolve();
}
if (
error.response.status == 400 &&
error.response.data == "UserName Or Password Not Correct"
) {
alert(error.response.data);
console.log("alert false login ");
logger.log(error.response);
} else {
if (error.response.status == 400) {
let message = "Validation Exception , fill the Form with correct inputs ";
logger.log(error.response);
toast.error(message);
}
}
if (error.response.status == 404) {
let message = " Not Found ";
logger.log(error.response);
toast.error(message);
return Promise.reject(error);
}
if (error.response.status == 406) {
let message = " User Identity Error ";
logger.log(error.response);
toast.error(message);
}
return Promise.reject(error);
});