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:  "/",
});
} 
}

Результат. Я открыл свое приложение с учетными данными на локальном хосте.введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

После выхода из системы я могу оставаться в системе других приложений.

введите сюда описание изображения

Другие вопросы по тегам