tokenReceivedCallback не вызывается при использовании MSAL AngularJS с Azure B2C - PullRequest
0 голосов
/ 04 июля 2019

делает

msalService.loginPopup();

и затем:

$rootScope.$on("msal:loginSuccess", function () {
    console.log("loginSuccess");

    var token = msalService.userInfo.idToken;
});

Я вижу, что userInfo.isAuthenticated верно, и есть токен id.

Однако tokenReceivedCallback никогда не вызывается.

msalProvider.init({
    clientID: "Client ID here",
    authority: "https://login.microsoftonline.com/tfp/myb2caad.onmicrosoft.com/B2C_1_SignUpSignIn",
    validateAuthority: false,
    //consentScopes: ["https://myb2caad.onmicrosoft.com/test/user_impersonation"],
    tokenReceivedCallback: function (errorDesc, token, error, tokenType) {
        debugger;
        if (token) {
            console.log('Token type: ' + tokenType + ' Token: ' + token)
        }
        else {
            console.log(errorDesc + error)
        }
    }
},
    $httpProvider // Optionally, pass http provider to inject request interceptor to attach tokens
);

Можете ли вы определить проблему или дать подсказки, где ее искать?

1 Ответ

0 голосов
/ 09 июля 2019

Оказывается, проблема была связана с hashPrefix. Приложение было с этим не в порядке.

Я должен был сделать:

app.config(['$locationProvider', function($locationProvider) {
    $locationProvider.html5Mode(false).hashPrefix('');
}]);

hashPrefix мешал обратному вызову.

Здесь упоминается: https://www.npmjs.com/package/@azure/msal-angularjs

...