У меня проблема с топором ios перехватчик ниже - мой топор ios код
import axios from "axios";
import store from "@/store";
import LocalStorageService from "@/services/LocalStorageService";
axios.defaults.baseURL = "https://localhost:44390";
axios.defaults.headers = {
"Content-Type": "application/json"
}
let isAlreadyFetchingAccessToken = false
let subscribers = []
function onAccessTokenFetched(access_token) {
subscribers = subscribers.filter(callback => callback(access_token))
}
function addSubscriber(callback) {
subscribers.push(callback)
}
axios.interceptors.response.use(function (response) {
return response
}, function (error) {
const { config, response: { status } } = error
if (status === 500) {
store.dispatch("setSnackbar", {
type: "error",
message: "An unexpected error occured."
});
}
const originalRequest = config
if (status === 401) {
if (!isAlreadyFetchingAccessToken) {
const accessToken = LocalStorageService.getAccessToken();
const refreshToken = LocalStorageService.getRefreshToken();
const accessTokenValidTo = LocalStorageService.getAccessTokenValidTo();
const refreshTokenValidTo = LocalStorageService.getRefreshTokenValidTo();
isAlreadyFetchingAccessToken = true
axios.put("/opeaadminportal/Session", {
AccessToken: accessToken,
AccessTokenValidTo: accessTokenValidTo,
RefreshToken: refreshToken,
RefreshTokenValidTo: refreshTokenValidTo
}).then(response => {
isAlreadyFetchingAccessToken = false
onAccessTokenFetched(response.data.tokens.accessToken)
LocalStorageService.storeAuthInfo(
response.data.tokens.accessToken,
response.data.tokens.refreshToken,
response.data.tokens.accessTokenValidTo,
response.data.tokens.refreshTokenValidTo);
axios.defaults.headers.common['Authorization'] = `Bearer ${response.data.tokens.accessToken}`;
})
}
const retryOriginalRequest = new Promise((resolve) => {
addSubscriber(access_token => {
originalRequest.headers.Authorization = 'Bearer ' + access_token
resolve(axios(originalRequest))
})
})
return retryOriginalRequest
}
return Promise.reject(error)
})
, и проблема в том, что токен истек, я получаю 401 ошибку и выполняет топор ios .put метод и после этого я получаю статус 200, но в следующем запросе я снова получаю ошибку 401, хотя токен обновлен ниже, я прикрепляю экраны
токен обновления 200 после обновления sh токен 401