Page 1 of 1

NextAuth.js Abmelden nicht löscht die Sitzung über Browser -Registerkarten hinweg

Posted: 01 Mar 2025, 11:56
by Anonymous
Ich verwende NextAuth.js für die Authentifizierung in meiner nächsten.js -Anwendung. Alles funktioniert gut, wenn Sie sich anmelden - wenn ich mich auf einer Registerkarte anmelde und das gleiche Projekt in einer anderen Registerkarte automatisch angemeldet habe, zeigt der Benutzer automatisch als angemeldete. /> < /li>
[*] Wenn ich die anderen Registerkarten nach dem Abmelden manuell aktualisiert habe, erscheinen sie immer noch protokolliert. Registerkarte


Verwendete Signout () von Next-Auth/React zum Abmeldung.

Code: Select all

const handleClose = async (type = '') => {
setAnchorEl(null);
if (type === 'logout') {
localStorage.setItem("nextauth_logout", Date.now().toString());
await signOut({ redirect: false });
}
};
< /code>
[list]
[*]  Ich habe einen benutzerdefinierten Hook erstellt, um Änderungen auf einer anderen Registerkarte zu lehen. Selbst dies wurde ausgelöst. Die Sitzung wird automatisch in der Registerkarte aktualisiert, die ich verwendet habe, und der Benutzer bleibt in sich selbst als angemeldet in sich < /p>
const useMultiTabLogout = () => {
useEffect(() => {
const handleStorageChange = (event) => {
if (event.key === "nextauth_logout" && event.newValue) {
signOut();
}
};

window.addEventListener("storage", handleStorageChange);
return () => window.removeEventListener("storage", handleStorageChange);
}, []);
};

[/list]