MSAL v2 Angular — проблема с выходом из системы
Я использую @azure/msal-angular версии 2 и Angular версии 13. Сценарий заключается в том, что при вызове функции выхода из учетной записи Microsoft учетная запись Microsoft успешно выходит из приложения (APP A). Но в идеале, кроме этого приложения (APP A), никакие другие приложения, которые уже вошли в систему (используя Microsoft), не должны выходить из системы.
(Такие приложения, как Microsoft Teams, Outlook и т. д.) Эти приложения я открываю в том же браузере.
Ниже код для выхода из системы.
let accountId = this.authService.instance.getAllAccounts()[0]?.homeAccountId;
const accountInfoActiveAcc = this.authService.instance.getAccountByHomeId(accountId);
this.authService.logoutPopup({ account: accountInfoActiveAcc });
Пожалуйста, помогите мне решить эту проблему. Заранее спасибо.
1 ответ
В описанном вами сценарии вы хотите выйти из текущего приложения, не выходя из других приложений. Для этого вам следует установитьmainWindowRedirectUri
параметр для URI перенаправления вашего приложения. Это гарантирует, что ваше приложение останется в системе, даже если пользователь вышел из своей учетной записи Microsoft.
Вот пример того, как выйти из текущего приложения без выхода из других приложений:
В моем компоненте.ts обновлен выход из системы, как показано ниже.
logout() {
if (this.msalGuardConfig.interactionType === InteractionType.Popup) {
this.authService.logoutPopup({
mainWindowRedirectUri: "/"
});
} else {
this.authService.logoutRedirect({
mainWindowRedirectUri: "/",
});
}
}
Результат. Я открыл свое приложение с учетными данными на локальном хосте.
После выхода из системы я могу оставаться в системе других приложений.