Reaction刷新令牌拦截器

8fsztsew  于 2022-10-21  发布在  React
关注(0)|答案(1)|浏览(135)

我在刷新令牌时遇到了问题。在我更新令牌之后,应该对我的配置发出请求,但这并没有发生。令牌被更新,但第二次执行getIserInfo方法时,它不起作用。
我的AXIOS拦截器:

import axios from "axios";
import {getToken, logOut, refreshToken, setUser} from "@/services/auth.service";

const HTTP = axios.create({baseURL: process.env.REACT_APP_API_ENDPOINT});

HTTP.interceptors.request.use(
    config => {
        const token = getToken();

        if (token) {
            config.headers['Authorization'] = `Bearer ${token}`;
        }

        return config;
    },
    error => Promise.reject(error)
)

HTTP.interceptors.response.use(
    response => response,
    async error => {
        debugger;
        const originalRequest = error.config;

        if (error.response.status === 401 && !originalRequest._retry) {
            originalRequest._retry = true;

            try {
                const response = await refreshToken();
                const {data} = await response;

                setUser(data);
            } catch (e) {
                logOut();
            }

            return HTTP(originalRequest);
        }

        return Promise.reject(error);
    }
)

export default HTTP

在执行令牌之后,getUserInfo方法应该再次工作

在删除页眉后工作

delete originalRequest["headers"]

return HTTP(originalRequest);
50pmv0ei

50pmv0ei1#

问题出在axios 1.0+中。在删除并切换到版本0.27之后,一切都正常了。这很可能是他们的一个漏洞。

相关问题