问题描述
我正在使用react-adal
库连接到ADFS
。我正在使用axios
拦截器来获取令牌,该令牌将按照文档中的说明以静默方式刷新令牌,但是当令牌过期时它将刷新页面,让我们用户填写表格,令牌过期后,它将刷新页面并丢失所有数据。
请找到以下代码:
axiosApi.interceptors.request.use((config) => {
return new Promise((resolve,reject) => {
让azuretoken = adalinstance.getCachedToken(adalConfig.resource) 如果(azuretoken){ “ adalinstance.acquiretoken(adalConfig.endpoints.api,(消息,令牌,错误)=> { console.log(错误); }); config.headers.Authorization =“ Bearer” + azuretoken;
resolve(config);
} 其他{
adalinstance.login();
}
});
});
解决方法
不能保证无提示令牌获取将始终成功,因此应用程序应包括错误处理,该错误处理将调用交互式方法来获取令牌(根据提供的代码,应用程序似乎正在这样做)。
ADAL.js提供了一个acquireTokenPopup方法,该方法可在这种情况下使用(而不是acquirementTokenRedirect),以使用户在同一页面上不会中断流程。