Configuration:
"@azure/msal-angular": "^1.1.2",
"msal": "^1.4.4",
"rxjs": "~6.4.0",
Angular 8+
export const msalConfig: Configuration = {
auth: {
clientId: environment.msalModule.clientID,
authority: environment.msalModule.authority,
redirectUri: environment.msalModule.redirectUri,
validateAuthority: true,
postLogoutRedirectUri: environment.msalModule.redirectUri,
navigateToLoginRequestUrl: true
},
cache:
{
cacheLocation: 'localStorage',
}
}
export const angularConfig: MsalAngularConfiguration = {
popUp: false,
consentScopes: [
'user.read',
environment.msalModule.appScope
],
protectedResourceMap: protectedResourceMap
}我有上述配置的角度应用程序。我使用的是msal-angular库中的MsalInterceptor。在登录microsoft window后,我被重定向至应用程序,在那里我收到错误:"Token calls in in hidden iframe“,且在此之后,又一个"Token renewal failed timeout”。问题出在acquireTokenSilent方法失败了。我看到更多的人有这个问题,这里描述的是:https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/1194。即使用户在localStorage中有令牌,也存在此错误。我想也许这只是一个警告,我可以捕捉到错误并充当登录的用户,但不是,因为有些用户实际上没有令牌,然后应用程序崩溃。有没有人遇到过类似的问题并解决了呢?
发布于 2021-08-09 07:12:12
当检测到你的应用程序在iframe内的页面加载时调用acquireTokenSilent,以防止由此产生的任何不良副作用(例如,无休止地尝试获取令牌)时,就会出现该错误。此thread中列出的建议是,当url中有哈希并且您的应用程序在iframe中时,不要在页面加载时调用acquireTokenSilent。
https://stackoverflow.com/questions/67668394
复制相似问题