Angular 13 - BrowserAuthError:interaction_in_progress:检测到正在进行的交互
P粉176203781
P粉176203781 2024-03-27 13:57:20
0
1
391

注销并立即尝试重新登录时出现以下错误。只有关闭浏览器似乎才能解决该问题。所以我假设这是某种缓存问题,但我似乎无法找到解决方法。

这是我当前使用的登录代码:

async signIn() {
    // console.log(this.appMSALObj)
    var _this = this;
    await this.appMSALObj.loginPopup(settings.loginRequest)
      .then(function(response) {
        //console.log("authService: login complete")
        _this.selectAccount();
        //console.log(_this.account)
        _this.router.navigate(['/home'])
      })
      .catch(error => {
        console.error(error);
      });
  }

它永远不会进入 selectAccount 函数。

msalConfig 设置为使用 localStorage,并且 storeAuthStateInCookie 标志为 false。

P粉176203781
P粉176203781

全部回复(1)
P粉066224086

回答有点晚了,但我会尝试一下。

根据docs 当第一个操作尚未完成而第二个操作被触发时,就会发生这种情况。例如:

loginPopup();
acquireTokenPopup();

在这种情况下,会发生 interaction_in_progress 。 您可以通过等待以下操作轻松防止这种情况:

await msalInstance.loginPopup();
await msalInstance.acquireTokenPopup();

在某些情况下,这并不能解决问题。 就我而言,缺少 <app-redirect></app-redirect> 也可能导致此错误。它必须放在您的 index.html 中:

  
  

值得注意的有趣的事情:如果您对 app-routing.module.ts 中提到的每个路由强制登录,即使您不使用 <app-redirect></app-redirect> ,它仍然可以正常工作而不会出现错误

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!