【发布时间】:2014-04-15 13:34:29
【问题描述】:
我们使用 Node + Connect 来管理我们的应用程序的会话,这是一个使用 Backbone.js 构建的单页应用程序 (SPA)。我正在尝试编写一些代码,这些代码将从客户端检查会话是否仍然有效。我知道我可以在 Node 本身中完成,但由于这是一个 SPA,我需要能够完全在客户端完成。
我的第一个想法是使用 jQuery 读取 connect.sid cookie,如果它不存在,则意味着会话已过期。不幸的是,该会话 cookie 受到 HttpOnly 标志的保护,这是有充分理由的。我不想禁用它。
我的第二个想法是在每次写入 connect.sid cookie 时编写一个第二个并行 cookie。第二个 cookie 将只存储会话 cookie 的过期日期,并将 HttpOnly 设置为 false,以便客户端可以读取它。
所以我的问题是,我该如何编写第二个 cookie, 或 是否有更好的解决方案可以从浏览器中检测会话过期状态?
我知道如何使用 Node 编写 cookie,但我不确定将代码放在哪里,以便每次 Connect 写入主 connect.sid 会话 cookie 时它都会触发。此外,我想读取会话 cookie 的过期日期,以便将其写入并行 cookie。
更新:明确地说,我不想阅读会话的到期日期。我知道 JS 无法访问 cookie 的过期日期。我只是想看看 cookie 是否存在,因为它只有在它有效时才会存在,因此它的缺失对我来说是足够的数据。
【问题讨论】:
标签: javascript node.js backbone.js cookies connect