Перво-наперво, я ниже уровня новичка, когда дело доходит до Nodejs / msal / azure b2c, и я пытаюсь понять поток.
Я начал с этого образца здесь: https://azure.microsoft.com/en-us/resources/samples/active-directory-b2c-javascript-msal-singlepageapp/
Я использую msal.js с Azure Ad B2C в приложении Nodejs. Я перенаправляю пользователя после входа с помощью политики входа на другую страницу, где у меня есть другие политики.
// index.html
var clientApplication = new Msal.UserAgentApplication(applicationConfig.clientID, applicationConfig.authority, authCallback, { logger: logger, cacheLocation: 'localStorage' });
function authCallback(errorDesc, token, error, tokenType) {
if (token) {
logMessage(token + ":" + token);
}
else {
logMessage(error + ":" + errorDesc);
}
}
Это моя функция входа в onclick в index.html. Метод 'test (accessToken)' выполняет перенаправление на маршруты внутреннего сервера js, где я сохраняю токен доступа в переменной сеанса, а метод выполняет рендеринг на другую страницу (test.ejs), где хранятся мои другие политики b2c.
function login() {
clientApplication.loginPopup(applicationConfig.b2cScopes).then(function (idToken) {
clientApplication.acquireTokenSilent(applicationConfig.b2cScopes).then(function (accessToken) {
test(accessToken);
}, function (error) {
clientApplication.acquireTokenPopup(applicationConfig.b2cScopes).then(function (accessToken) {
updateUI();
}, function (error) {
logMessage("Error acquiring the popup:\n" + error);
});
})
}, function (error) {
logMessage("Error during login:\n" + error);
});
}
Теперь мой вопрос заключается в том, как мне получить текущее состояние объекта clientApplication Msal.UserAgentApplication в моем другом представлении (test.ejs), чтобы сделать что-то вроде этого:
clientApplication.acquireTokenSilent(applicationConfig.b2cScopes).then(function (accessToken) {
logMessage(accessToken);
}