首頁  >  問答  >  主體

Angular 13 - BrowserAuthError:interaction_in_progress:偵測到正在進行的交互

登出並立即嘗試重新登入時出現以下錯誤。只有關閉瀏覽器似乎才能解決該問題。所以我假設這是某種快取問題,但我似乎無法找到解決方法。

這是我目前使用的登入程式碼:

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粉176203781P粉176203781206 天前399

全部回覆(1)我來回復

  • P粉066224086

    P粉0662240862024-03-28 10:37:10

    回答有點晚了,但我會嘗試一下。

    根據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> ,它仍然可以正常工作而不會出現錯誤

    回覆
    0
  • 取消回覆