0

我正在使用react-adal库连接到ADFS. 我正在使用axios拦截器来获取令牌,它将按照文档中的说明静默刷新令牌,但是当令牌过期时它会刷新页面,让用户填写表单并且令牌过期,它会刷新页面并丢失所有数据。请找到以下代码:

    axiosApi.interceptors.request.use((config) => {
return new Promise((resolve, reject) => {
let azureToken = adalInstance.getCachedToken(adalConfig.resource)
if (azureToken) {
    adalInstance.acquireToken(adalConfig.endpoints.api, (message, token, error) => {
                console.log(error);});
                config.headers.Authorization = "Bearer " + azureToken;
               
                resolve(config);}
            else {
                
                adalInstance.login();
            }
    });
});

有什么方法可以在后台完成并且用户不必看到任何中断。

4

1 回答 1

1

无法保证静默令牌获取将始终成功,因此应用程序应包括调用交互式方法以获取令牌的错误处理(根据提供的代码,应用程序似乎正在执行此操作)。

ADAL.js 提供了一个 acquireTokenPopup 方法,可以在这种情况下使用(而不是 acquireTokenRedirect),以使用户保持在同一页面上而不会中断流程。

于 2020-09-10T07:07:25.373 回答