Axios удалить заголовок Autorization если нет токена refresh и повторить запрос

Возникла такая проблема. В общем не могу понять как удалить заголовок Autorization и повторить запрос. В общем код примерно такой

const BASE_URL = 'мой url бекенда'

const axiosService = axios.create({
    withCredentials: true,
    baseURL: BASE_URL,
})

axiosService.interceptors.request.use(
    (config) => {
        const token = localStorage.getItem("access_token");

        if (token) {
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    (error) => {
        Promise.reject(error);
    }
);

axiosService.interceptors.response.use(
    (response) => response,
    async (error) => {
        const originalRequest = error.config;
        const valid = localStorage.getItem("refresh_token");

        if (!valid) {
            localStorage.removeItem('access_token');
            localStorage.removeItem('refresh_token');
            
            //При таком коде не работае повтореый запрос вообще
            //delete originalRequest.headers["Authorization"];
            //return await axiosService(originalRequest)
            
            //При таком коде при каждом запросе всё равно ошибка 401 но работает. 
            //return await axios(originalRequest.url, {
            //    method: originalRequest.method,
            //    withCredentials: true
            //});
        }

        if (error.response.status === 401  && !originalRequest._isRetry) {
            originalRequest._isRetry = true
            // Мой запрос на обновления токена access
        }

        return Promise.reject(error);
    },
);

Как мне реализовать что бы если нет токена refresh или он просрочен, выполнялся запрос без заголовка Authorization ? Подскажите пожалуйста.


Ответы (0 шт):