Hola, quiero eliminar todas las cookies y el almacenamiento local al cerrar el navegador, pero quiero mantener las cookies y el almacenamiento local mientras navego entre páginas en nextjs. Estoy usando el evento window.onbeforeunload, pero este evento también se activa al navegar entre páginas. Cómo manejar este problema.
Está resuelto. El método que estoy usando es que verifico si sessionStorage está activo, luego no llame a la función handleAllSessions para eliminar las cookies; de lo contrario, llámelo.
if ( typeof window !== 'undefined' && !sessionStorage.getItem('sessionActive') ) { handleAllSessions(); } function handleAllSessions() { if (!sessionStorage.getItem('sessionActive')) { document.cookie = 'suauth=; expires=2000-10-16T19:22:35.000Z;'; localStorage.removeItem('isAuthenticated'); } }Como otros han mencionado en los comentarios, probablemente debería usar sessionStorage . Consulte Ventana sessionStorage para obtener más información. Lo bueno de esto es que elimina los datos después de que finaliza la sesión. Pero también puede eliminar los datos de la sesión dentro de la sesión si lo desea.
Editar: puede manejar la eliminación de cookies y datos de almacenamiento local por su cuenta (cuando el navegador está cerrado). Haz esto después de haber almacenado lo que necesites en sessionStorage . Luego, cuando navegue, seguirá teniendo esos datos en sessionStorage , independientemente de si los tienen cookies o ls.