2017-08-16 1 views
5

Ich habe Probleme mit MSAL (x) funktioniert - Das Login-Popup erfolgreich, aber wenn ich versuche, Token aus dem ID-Token mit acquireTokenSilent abrufen und zugreifen, verursacht es die App neu zu laden (alle Ressourcen, Registerkarte Netzwerkkarte des Entwicklungstools) und gibt den Fehler "Tokenerneuerungsvorgang aufgrund Timeout fehlgeschlagen: null" aus. Ich habe nach relevanten SO Fragen/google gesucht, aber hatte kein Glück, ähnliche Probleme zu finden. Das Verrückte daran ist, dass es neulich funktioniert hat und einfach aufgehört hat - selbst wenn man zu demselben Code zurückkehrt, wird das Problem nicht gelöst.MSAL mit React verwenden, acquireTokenSilent verursacht App-Aktualisierung und schlägt fehl

Die Verwendung von acquireTokenPopup im Fehlerhandler von silent zeigt ein Popup an, lässt jedoch keine Anmeldung mit demselben Benutzer zu ("Wir erkennen diesen Domänennamen nicht"), zeigt aber den korrekten MS App-Namen an. Das macht mich verrückt.

Relevante Code (in einer Komponente Click-Handler Reagieren):

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

Ich habe jetzt auch das gleiche Problem. Konnten Sie dieses Problem lösen? –

+0

Art von - So wie es eines Tages funktionierte und das nächste nicht, am Tag danach funktionierte es wieder, ohne Codeänderungen. Ich denke, es war ein Problem für sie, denn es gab keine Veränderungen an meinem Ende. –

Antwort

0

Ich glaube, Ihr Problem zu MSAL.js Issue #106 verwandt ist, und innerhalb des 'dev' Zweig gepatcht. Ich habe in den letzten Wochen mit Microsoft an dieser Bibliothek gearbeitet und mir wurde gesagt, dass eine offizielle Veröffentlichung für diese Woche geplant ist.

Verwandte Themen