2017-08-16 123 views
5

我遇到了MSAL(x)工作出現問題 - 登錄彈出成功,但是當我嘗試使用​​從id令牌中檢索並訪問令牌時,它會導致應用程序重新加載(所有資源,每個開發工具網絡選項卡),並引發錯誤「由於超時:令牌更新操作失敗:null」。我已經搜索了相關的SO問題/谷歌,但沒有運氣發現類似的問題。瘋狂的事情是,它有一天工作,剛剛停止 - 即使恢復到相同的代碼不能解決問題。在反應中使用MSAL,acquireTokenSilent導致應用程序刷新並失敗

在silent的錯誤處理程序中使用acquireTokenPopup會顯示一個彈出窗口,但不允許用同一用戶登錄('我們無法識別此域名'),但會顯示正確的MS App名稱。這真讓我抓狂。

相關代碼(在一個陣營組件單擊處理):

onMSLogin() { 
    const { msLoginFailure } = this.props; 
    const userAgentApplication = this.userAgentApplication; 
    userAgentApplication.loginPopup(['user.read']) 
     .then(function() { 
     console.log('User login success'); 
     const scopes = ['User.Read']; 
     userAgentApplication.acquireTokenSilent(scopes).then((accessToken) => { 
      console.log('Access token acquired (silent): ', accessToken); 
      this.getGraphData(accessToken); 
     }, (error) => { 
      console.error('Silent token fail: ', error); 
      userAgentApplication.acquireTokenPopup(scopes).then((accessToken) => { 
      console.log('Access token acquired (popup): ', accessToken); 
      }); 
     }) 
     }, function (error) { 
     // handle error 
     console.log('MS Login Failure: ', error); 
     if (msLoginFailure) msLoginFailure(error); 
     }); 
} 
+0

我現在也有同樣的問題。你能解決這個問題嗎? –

+0

排序 - 就像它有一天工作,下一個沒有,它再次工作的那一天,沒有代碼的變化。我認爲這是他們的一個問題,因爲我的結局沒有變化。 –

回答

0

我相信你的問題涉及到MSAL.js Issue #106,而「開發」分支內修補。過去幾周,我一直在與這家圖書館的微軟合作,並且我被告知本週正式發佈的版本將會被削減。

相關問題