Springy Developer
Springy Developer

Reputation: 322

Msal logout displaying multiple account

I am using Azure AD with React JS. When I am signed in using multiple accounts and call msal logout, then it is showing me an option to select an account that needs to be signed out. I just want to show the logout option for the currently active account, rather than all signed-in users.

I have tried to pass an active account using the below snippet but still, I am getting an option to logout all signed-in accounts. Can you please let me know how can I get an option to logout only active account, rather than all signed-in accounts?

const myMsal = new PublicClientApplication(config);

// you can select which account application should sign out
const logoutRequest = {
    account: myMsal.getAccountByHomeId(homeAccountId)
}

myMsal.logoutRedirect(logoutRequest);

https://learn.microsoft.com/en-us/azure/active-directory/develop/scenario-spa-sign-in?tabs=javascript2#sign-out-with-a-redirect

Upvotes: 10

Views: 10419

Answers (2)

Hussein Dahir
Hussein Dahir

Reputation: 477

You can use Prompt-less Logout:

const currentAccount = msalInstance.getAccountByHomeId(homeAccountId);
// The account's ID Token must contain the login_hint optional claim to avoid the account picker
await msalInstance.logoutRedirect({ account: currentAccount});

You will need to add login_hint claim to token optional claims in your application's Token configuration on Azure Portal:

enter image description here

Upvotes: 7

ShrutiJoshi-MT
ShrutiJoshi-MT

Reputation: 1831

msal logout it is shows an option to select an account that needs to be signed out

The logout prompt you're seeing comes from the AAD service, because it needs to know which user to terminate the session for on the authentication server side

Unfortunately, this is a known issue with the AAD service. At this time, there is no way to bypass the logout account selection screen on logout

According to this document : https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/logout.md and code descriptions, MSAL is clear the cache and session data on the client side (browser)

There is github issue you can refer it for more details :

https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/2922

Upvotes: 0

Related Questions