4

我有一个烦人的问题,遍布整个互联网,但我找不到解决问题的具体方法。这里是:

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

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

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

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

我希望我有足够的意义:)

谢谢

4

1 回答 1

3

关键是这是一个用户选项。它不是应用程序选项。您的应用程序绝对没有任何业务试图解决它,并且应该将场景视为用户真的在同一个会话中。

于 2012-12-04T13:46:45.810 回答