Использование msal. js для вызова web api, но не удалось в asp. net webform. - PullRequest
0 голосов
/ 24 апреля 2020

Я просматриваю документ, чтобы получить маркер доступа, а затем вызываю веб-интерфейс API, защищенный Azuread. Я использую msal. js libary. Во-первых, я использую кнопку для входа, вот мой код const myMSALObj = new Msal.UserAgentApplication (msalConfig);

function signIn() {
    myMSALObj.loginPopup(loginRequest)
        .then(loginResponse => {
            alert('id_token acquired at: ' + new Date().toString());
            console.log('id_token acquired at: ' + new Date().toString());
            console.log(loginResponse);

            if (myMSALObj.getAccount()) {
                alert("already get account");
                showWelcomeMessage(myMSALObj.getAccount());
            }
        }).catch(error => {
            console.log(loginRequest);
            console.log("loginPopUp:" + error);
        });
}

все отлично работает как в файле html, так и в файле aspx, а затем после подтверждения входа в систему я использую другую кнопку для вызова API, код как показано ниже.

function seeProfile() {
    alert('call profile');
    alert(myMSALObj.getAccount().toString());
    if (myMSALObj.getAccount()) {
        alert();
        myMSALObj.acquireTokenSilent(loginRequest).then(
            response => {
                alert(response);
                //callMSGraph(graphConfig.graphMailEndpoint, response.accessToken, updateUI);
                // success response
            }).catch(function (error) {
                alert(error);
                console.log(error);
            });
}
}

только для получения токена из acquireTokenSilent ,, он хорошо работает в моем файле html. Но не удалось в веб-форме .aspx. Нет обратной связи в функции, а не в функции then () и catch

...