嘿,我想在关闭浏览器时删除所有的cookie和本地存储,但希望在nextjs页面之间导航时保留cookie和本地存储。我正在使用窗口。Onbeforeunload事件,但这个事件也会在页面间导航时触发。如何处理这个问题。
正如其他人在评论中提到的,您可能应该使用sessionStorage
。有关更多信息,请参阅Window sessionStorage。它很酷的一点是,它在会话结束后删除数据。但是如果你愿意,你也可以在会话中删除会话数据。
编辑:您可以自己处理cookie和本地存储数据删除(当浏览器关闭时)。在sessionStorage
中存储了所需的内容后执行此操作。然后,当你导航时,你仍然会有sessionStorage
中的数据,无论cookie或ls是否拥有它。
问题解决了。我使用的方法是我正在检查sessionStorage是否活跃,然后不要调用handleAllSessions函数来删除cookie,否则调用它。
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');
}
}