import decodeJWT from "jwt-decode";
import axios from "axios";
import authentication from "react-azure-adb2c";
export const refreshAccessToken = async () => {
const jwt = decodeJWT(authentication.getAccessToken());
var current_time = Date.now() / 1000;
var remaining_time = jwt.exp - current_time;
if (jwt.exp < current_time) {
console.log("--generating new token--");
await authentication.run(async () => {
axios.defaults.headers.common = {
Authorization: `bearer ${authentication.getAccessToken()}`
};
});
}
};
export const myAxiosGet = async (url, config) => {
refreshAccessToken()
.then(async response => {
return await axios.get(url, config);
});
};
我的应用程序使用myAxiosGet()
函数来发出任何axios.get请求。我在此代码中遇到2个问题,我尝试了不同的方法来解决该问题,但没有一个起作用。感谢有人给我指点
我在axios.get
中有then
时看到此错误。在使用myAxiosGet()
的其他文件中,外观如下
const response = await myUtil.myAxiosGet(API_ENDPOINT,config);
my_items = response.data.myitems;
如果令牌过期,我必须更新承载令牌并发出请求,否则可以使用在应用程序加载期间添加到index.js中的旧令牌来调用axios.get()
。
我尝试使用回调,then
链接,=>运算符和其他解决方案,但没有一个起作用。