MSAL JS версия 1.2.1 loginRedirect не вызывает handleRedirectCallback при развертывании сайта - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь заставить loginRedirect работать с приложением React. Он работает при локальном запуске, но при развертывании в Azure Служба приложений перенаправление не вызывает handleRedirectCallback (), и ha sh остается в URL-адресе.

Так что я продолжал уменьшать это до сих пор, у меня есть только индекс. html, который я взял отсюда: https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp/blob/master/index.html

Это от Micrososft's ADB2 C С MSAL и SPA.

Я изменил clientId и полномочия, предоставил handleRedirectCallback и redirectUri и изменил myMSALObj.loginPopup () на myMSALObj.loginRedirect ().

Когда я запускается локально, работает, хотя и выполняется 2 раза (точка останова на новом UserAgentApplication (config)).

ПРОБЛЕМА: при развертывании этой простой страницы в Azure Служба приложений и нажатии кнопки «Вход» вызов

myMSALObj.loginRedirect()

действительно переходит к логину Microsoft, но когда он перенаправляет обратно на мой сайт и выполняет

new UserAgentApplication(config) 

, он не запускает handleRedirectCallback () и не использует window.location .га sh. Ха sh остается на URL, и обработка просто останавливается.

Я могу установить точки останова в развернутом источнике (в Chrome Dev) и наблюдать, что после перенаправления обратно на мою страницу, это определенно новый UserAgentApplication, но он никогда не возвращается из конструктора.

Вот основной код из индекса. html, не показывающий часть, которая вызывает Api et c:

  <script>
    "use strict";

    // configuration to initialize msal
    const msalConfig = {
        auth: {
            clientId: "xxxxx-xxxx-xxxx-xxxx-xxxxxxxx", //This is your client ID
            authority: "https://xxxxxxxxx.b2clogin.com/xxxxxxxxx.onmicrosoft.com/B2C_1A_signup_signin", 
            validateAuthority: false,
            redirectUri: 'https://xxxxxxxxx-react.azurewebsites.net'
        },
        cache: {
            cacheLocation: "localStorage",
            storeAuthStateInCookie: true
        }
    };

    // instantiate MSAL
    const myMSALObj = new Msal.UserAgentApplication(msalConfig);
    myMSALObj.handleRedirectCallback((err, response) => {
      if (err) {
          alert(err);
      } else {
          updateUI();
      }
      });

    const loginRequest = {
        scopes: appConfig.b2cScopes
    };

    function signIn() {
        // myMSALObj.loginPopup(loginRequest).then(function (loginResponse) {
        //     getToken(tokenRequest).then(updateUI);
        // }).catch(function (error) {
        //     logMessage(error);
        // });
        myMSALObj.loginRedirect(loginRequest)
    }

    function updateUI() {
        console.log('inside updateUI');
      const userName = myMSALObj.getAccount().name;
      console.log(myMSALObj.getAccount());
      console.log('username=' + userName);
      logMessage("User '" + userName + "' logged-in");
    }

</script>


Служба приложений Azure запущена Linux PHP 7,3.

...