在 Azure B2C 中使用 MSAL AngularJS 时不会调用 tokenReceivedCallback
tokenReceivedCallback is not called when using MSAL AngularJS with Azure B2C
正在做
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
);
你能找出问题所在或给出一些提示在哪里寻找吗?
原来问题与 hashPrefix
有关。该应用程序出现问题。
我必须做的:
app.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5Mode(false).hashPrefix('');
}]);
hashPrefix 干扰了回调。
正在做
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
);
你能找出问题所在或给出一些提示在哪里寻找吗?
原来问题与 hashPrefix
有关。该应用程序出现问题。
我必须做的:
app.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5Mode(false).hashPrefix('');
}]);
hashPrefix 干扰了回调。