I am Using @azure/msal-react library If i login with "A" account and after logout when I try to login with "B" account then its getting login as "A" account. only i.e previous account. while login i am using "acquireTokenSilent" with "handleRedirectPromise" for loginRedirect. while logout i am using "logoutRedirect" i am clearing all "cookies" and "browser cache" too.
While Login using @azure/msal-react library for loginRedirect i am using following code.
useEffect(() => {
if (isAuthenticated && inProgress === InteractionStatus.None) {
instance.acquireTokenSilent({
account: accounts[0],
scopes: ["User.Read"]
}).then(response => {
let loginValues = {
isAdminLogin: false,
authTypeId: 1,
AD_token: response.accessToken,
email: response.account.username
}
localStorage.setItem("accountId", response.account.homeAccountId);
props.userLogin(loginValues);
})
}
}, [inProgress, isAuthenticated, accounts, instance]);
const formSubmit = (values) => {
let accountId = '';
instance.handleRedirectPromise()
.then((loginResponse) => {
if (!!loginResponse.accessToken) {
accountId = loginResponse.account.homeAccountId;
localStorage.setItem("accountId", accountId);
values.AD_token = loginResponse.accessToken;
props.userLogin(values);
} else {
props.alertMsg(UrlConstants.errorMSG, 'danger');
}
})
.catch(err => {
console.error(err);
});
instance.loginRedirect(loginRequest);
}
const handleLogout = () => {
if (user.authTypeId === 2){
let newHomeaccountId = localStorage.getItem('accountId')
const logoutRequest = {
account: newHomeaccountId,
postLogoutRedirectUri: UrlConstants.azureActiveDirectoryRedirectionURL,
// mainWindowRedirectUri: UrlConstants.azureActiveDirectoryRedirectionURL,
}
localStorage.removeItem('accountId');
localStorage.clear();
deleteAllCookies();
instance["browserStorage"].clear();
localStorage.removeItem('h_l_ots_data');
sessionStorage.clear();
instance.logoutRedirect(logoutRequest).then(function (loginResponse) {
props.logout();
}).catch(function (error) {
//login failure
});
}
}