2017-07-20 4 views
2

私はREDUX内で認証のためにMSALライブラリを使用しようとしていますが、何らかの問題があります。私は反応するだけのアプリを作って同じことをすると、アクセストークンは正常に取得されますが、REDUXでそれを使用しようとすると、アクセストークンを取得しようとすると常にタイムアウトになります。REDUXでMSAL(Microsoft認証ライブラリ)を使用

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); 
    }); 
}); 
} 

これは私が持っているコードですが、私はいつも次のエラートークン更新操作がタイムアウトのため失敗します:ヌル を私は単純なHTMLでこれを実行しようとか、だけのアプリを反応させた場合、それは完璧に動作します。どんな種類の助けも高く評価されます。

答えて

0

「catch」とif条件を追加すると問題を特定するのに役立つかどうかを確認してください。

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); 
    }); 
    }); 
} 
関連する問題