Вы пытаетесь добавить токен при создании экземпляра axios один раз, но вам нужно создавать и обновлять токен каждый раз, когда вы отправляете запрос.Вы можете обновить свою упаковку apiClient следующим образом:
// ../services.js
const apiClient = baseURL => {
const axiosInst = axios.create({
baseURL,
});
axiosInst.defaults.headers.common['Content-Type'] = 'application/json';
return (type = 'get') => {
let call = null;
return (url, data, config) => {
if (call) {
call.cancel('Only one request allowed!');
}
call = axios.CancelToken.source();
const extConf = {
cancelToken: call.token,
...config,
};
switch (type) {
case 'request':
return api[type](extConf);
case 'get':
case 'delete':
case 'head':
return api[type](url, extConf);
default:
return api[type](url, data, extConf);
}
};
};
}
export const baseApi = apiClient('http://localhost:5000/api/')
А затем используйте его так:
class PinResetApi {
constructor(client) {
this.client = client('request');
}
/**
* Reset pin controller
*/
requestChangePin = () =>
this.client({
method: 'GET',
headers: {
...
}),
});