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
}
我有具有上述配置的 Angular 应用程序。我正在使用 msal-angular 库中的 MsalInterceptor。在微软窗口登录后,我被重定向到我收到错误的应用程序:“令牌调用在隐藏的 iframe 中被阻止”,之后又出现“令牌更新因超时而失败”。问题在于acquireTokenSilent 方法失败。我看到更多的人有这个问题,这在这里描述:https ://github.com/AzureAD/microsoft-authentication-library-for-js/issues/1194 。即使用户在 localStorage 中有令牌,也存在此错误。我认为这可能只是警告,我可以捕获错误并充当已登录的用户,但没有,因为某些用户实际上没有令牌,然后是应用程序迷恋。有没有人遇到过类似的问题并处理过?