Javascript 在浏览器关闭时删除 cookie,即使它设置为在启动时恢复 cookie

标签 javascript cookies browser settings session-cookies

我有一个烦人的问题,这个问题在互联网上到处都是,但我找不到具体的解决方案来解决我的问题。在这里:

在 Chrome 中,您可以选择在浏览器启动时“从我离开的地方继续”。不幸的是,这意味着所有 session cookie 都会在浏览器关闭和恢复或浏览器启动时保留。我需要我的客户端(Javascript)应用程序在浏览器关闭后杀死 cookie,但即使我没有设置到期日期也不会发生这种情况(因此 cookie 变成 session cookie,即使 Chrome 也这么说浏览 session 结束时过期)。问题是即使我关闭浏览器或重新启动计算机,Chrome 也永远不会终止浏览 session ,因为该死的启动设置。

一种方法是指定 future 15 分钟(或其他时间)后的到期日期。在每次用户操作时,cookie 的到期日期都会刷新(重新创建 cookie)。如果用户不活动超过 15 分钟(或其他时间),cookie 就会消失。我无法承受让另一个人打开浏览器并发现自己处于前一个人的 session 中的 15 分钟,而且我无法让当前用户每次上厕所后都登录。所以我确实需要这个:用户登录,设置 cookie 并一直持续到浏览器关闭。这是 session cookie 的正常行为,但是……(上一段)。

我也考虑过删除窗口 unload() 事件上的 cookie,但是如果应用程序在多个选项卡中打开并且用户只关闭其中一个怎么办?我可以每秒轮询一次 cookie 的存在,并将 cookie 始终保存在 Javascript 变量中,然后如果用户关闭另一个选项卡,我可以每秒恢复一次 cookie(如果需要)。这将使 cookie 保持事件状态,直到关闭我的应用程序的最后一个选项卡,即浏览器退出。这是我目前最好的解决方案,但我讨厌它。

有人知道另一种(更清洁的)方法来实现同样的事情吗?有什么方法可以指定我不关心用户启动设置的 Chrome(和/或其他浏览器),我的 cookie 应该在浏览器关闭时消失?

我希望我已经说得够明白了:)

谢谢

最佳答案

关键在于这是一个用户选项。它不是一个应用程序选项。您的应用程序绝对没有尝试解决它的业务,并且应该将场景视为用户确实在同一 session 中。

关于Javascript 在浏览器关闭时删除 cookie,即使它设置为在启动时恢复 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13704141/

相关文章:

javascript - 在 node.js 中从数据库中获取非英文字符时出现编码问题

javascript - 故障排除 : D3 line transition is really jerky. 需要remove()?

java - 使用 Java 填写表格,可能控制浏览器?

http - Web 浏览器是否总是在域名后发送尾部斜线?

javascript - Electron/浏览器 : Detect when the app is opened again from taskbar (after being minimized)

javascript - db.collection 不是函数 (MongoDB 3+)

javascript - 在 Bootstrap 表中转换多个 JSON 反序列化日期

python - 使用 AWS ALB/Cognito 进行身份验证

javascript - 有没有办法在 Shopify Liquid 模板中使用 Cookie?

Python + split : Error - httplib. BadStatusLine: ''