2017-07-20 3 views
2

Ich versuche, die MSAL-Bibliothek innerhalb von REDUX für Auth zu verwenden, aber einige Probleme. Wenn ich eine Reaction Only App mache und dasselbe mache, bekomme ich das Access Token erfolgreich, aber versuche es in REDUX zu verwenden, ich bekomme immer eine Zeitüberschreitung wenn ich versuche das Access Token zu holen.Verwenden von MSAL (Microsoft Authentication Library) mit REDUX

function Auth() { 
    var userAgentApplication = new Msal.UserAgentApplication(*my app id*, null, function (errorDes, token, error, tokenType) { 
    // this callback is called after loginRedirect OR acquireTokenRedirect (not used for loginPopup/aquireTokenPopup) 
    }); 

    return new Promise((resolve, reject) => { 
     console.log('inside the promise'); 
     userAgentApplication.loginPopup(["user.read"]).then((token) => { 
      console.log("Successfully got id token"); 
      console.log("first token: ", token); 
      console.log(userAgentApplication.getUser().name); 
      userAgentApplication.acquireTokenSilent(["user.read"]).then((token) => { 
      resolve(token); 
     }, function(error) { 
      reject(error); 
     }); 
    }, function (error) { 
     reject(error); 
    }); 
}); 
} 

Dies ist der Code, den ich habe, aber ich folgende Fehler Token Erneuerungsvorgang aufgrund Timeout immer erhalten fehlgeschlagen: null Wenn ich versuche, dies in einfachem HTML zu tun, oder reagieren nur app, es funktioniert perfekt. Jede Art von Hilfe würde sehr geschätzt werden.

Antwort

0

sehen, ob ein "Fang" hinzufügen und wenn Bedingung hilft, das Problem zu identifizieren.

function Auth() { 
    return new Promise((resolve, reject) => { 
    const userAgentApplication = new Msal.UserAgentApplication(*my app id*, null, function (errorDes, token, error, tokenType) { 
     // this callback is called after loginRedirect OR acquireTokenRedirect (not used for loginPopup/aquireTokenPopup) 
    }); 

    console.log('inside the promise'); 
    userAgentApplication.loginPopup(["user.read"]) 
    .then((token) => { 
     console.log("Successfully got id token"); 
     console.log("first token: ", token); 
     console.log(userAgentApplication.getUser().name); 

     if (userAgentApplication.getUser()) { 
     userAgentApplication.acquireTokenSilent(["user.read"]) 
     .then((token) => { 
      resolve(token); 
     }) 
     .catch((error) => { 
      reject(error); 
     }); 
     } else { 
     reject("User not logged in"); 
     } 
    }) 
    .catch((error) => { 
     reject(error); 
    }); 
    }); 
} 
Verwandte Themen