我试图在拦截器中发送不同的请求
我想在请求头中 for each 请求发送accessToken授权,除了一个 case
所以我在拦截器请求中编写了这段代码.使用
config.headers = {authorization: `Bearer ${accessToken}`};
但是如果这个错误发生了
error.response.data.code === 'expired'
我想发送refreshtoken
,而不是accesstoken
所以我在拦截器中编写了这段代码.回答使用错误
const { data } = await axios.post(
`${Config.API_URL}/user/refreshToken`,
{},
{ headers: { authorization: `Bearer ${refreshToken}` } }
);
这是我的密码
useEffect(() => {
axios.interceptors.request.use(async (config: any) => {
const accessToken = await EncryptedStorage.getItem("accessToken");
config.headers = { authorization: `Bearer ${accessToken}` };
return config;
});
axios.interceptors.response.use(
(response) => {
return response;
},
async (error) => {
const {
config,
response: { status },
} = error;
if (status === 419) {
if (error.response.data.code === "expired") {
const originalRequest = config;
const refreshToken = await EncryptedStorage.getItem("refreshToken");
const { data } = await axios.post(
`${Config.API_URL}/user/refreshToken`,
{},
{ headers: { authorization: `Bearer ${refreshToken}` } }
);
return axios(originalRequest);
}
}
return Promise.reject(error);
}
);
}, [dispatch]);
我如何修复我的代码?
标题.仍在请求accesstoken授权.