Я не уверен, как объяснить это кратко, первая часть, Неявный поток. Я не совсем понимаю, что такое неявный поток. Я не разобрал это в одно предложение. Это не шаблон дизайна или способ обработки токенов, я не знаю.
Работа с довольно простым c JavaScript Одностраничным приложением и реализация Msal версии 1.2.1. Каждый раз, когда msalClient получает токен для области, он оставляет iFrame для обработки обновления токена.
window.msalConfig = {
auth: {
clientId: '<clientId>'
, authority: "https://login.microsoftonline.com/common"
, validateAuthority: true
}
, cache: {
cacheLocation: "localStorage"
}
, graphScope: {
scopes: ["https://graph.microsoft.com/User.Read", "https://graph.microsoft.com/Mail.Send" ]
}
, appScope: {
scopes: ["<clientId>"]
}
, appToken:{
token: null
}
, graphToken:{
token: null
}
};
clientApplication = new Msal.UserAgentApplication(window.msalConfig);
function onSignin(idToken) {
clientApplication.acquireTokenSilent(window.msalConfig.appScope)
.then(function (token) {
window.msalConfig.appToken.token = token;
}, function (error) {
clientApplication.acquireTokenPopup(window.msalConfig.appScope).then(function (token) {
window.msalConfig.appToken.token = token;
}, function (error) {
console.log(error);
});
});
getGraphToken();
};
function getGraphToken() {
clientApplication.acquireTokenSilent(window.msalConfig.graphScope)
.then(function (token) {
window.msalConfig.graphToken.token = token;
}), function (error) {
console.log(error);
};
};
Эти iFrames просто сидят здесь и периодически обновляют sh, предположительно получая новый токен или поддерживая его на другом конце. (Когда в отладчике chrome каждый refre sh выводит меня на вкладку Sources, это делает отладку практически невозможной.)
Также , удивляясь, почему межсайтовая готовка ie выдает ошибки при работе с Графикой, а не с Приложением.
Любопытно, почему это закрыто, это все еще, кажется, присутствует.
https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/697