我的服务器运行 node.js/Express 的系统日期不正确,充当 Web 服务器。服务器将位于客户位置,可能无法访问时间服务器,因此我不得不假设系统日期可能不正确。我的问题是 cookie 过期。在我的 Node 程序中,我将过期时间设置为 15 分钟,如下所示:
app.use(express.session({ cookie: { path: '/', httpOnly: true, maxAge: (1000*60*15]) }, secret: 'secret' }));
cookie 过期日期设置为未来 15 分钟,基于客户端计算机在 Firefox 和 Chrome 中的时间,但基于服务器在 IE 10 中的错误时间。
例如:
如果当前本地日期是 2013 年 11 月 4 日星期一 10:30:00,而服务器时间不正确是 2012 年 5 月 21 日星期一 06:30:00,我的 cookie 的过期日期设置为 2013 年 11 月 4 日星期一 10:45:在 Firefox 和 Chrome 上为 00,但在 IE 10 中为 2012 年 5 月 21 日星期一 06:45:00。所以我的节点服务器认为 IE 中的 cookie 已过期,因此我无法登录。
如何根据客户端机器的时间使 IE 的 cookie 在未来 15 分钟过期?