我正在使用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();
}
});
});
是否可以在后台完成任何操作,并且用户不必看到任何中断。
答案 0 :(得分:0)
不能保证无提示令牌获取将始终成功,因此应用程序应包括错误处理,该错误处理将调用交互式方法来获取令牌(根据提供的代码,应用程序似乎正在这样做)。
ADAL.js提供了一个acquireTokenPopup方法,该方法可在这种情况下使用(而不是acquirementTokenRedirect),以使用户在同一页面上不会中断流程。