刷新axios拦截器中的令牌不起作用

时间:2020-08-21 09:40:10

标签: reactjs axios azure-active-directory refresh-token adal-deprecation

我正在使用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();
            }
    });
});

是否可以在后台完成任何操作,并且用户不必看到任何中断。

1 个答案:

答案 0 :(得分:0)

不能保证无提示令牌获取将始终成功,因此应用程序应包括错误处理,该错误处理将调用交互式方法来获取令牌(根据提供的代码,应用程序似乎正在这样做)。

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