【发布时间】:2015-08-12 11:28:28
【问题描述】:
我正在尝试在 express 框架中设置一个 cookie,但它没有通过,而且对于我的生活,我无法弄清楚为什么。相关代码如下所示:
module.exports = function(app) {
return function(req, res, next) {
if (req.cookies.user_token) {
req.session.cookie.httpOnly = false
res.cookie('user_token', req.cookies.user_token, { domain: 'www.example.com', httpOnly: false, path: '/', maxAge: 900000 });
}
return res.redirect('https://www.example.com/index.jsp?other_stuff=value');
}
}
我可以看到请求发出了,并且那个 cookie 没有被设置。我已经使用调试器逐步完成,并且我确定代码会受到影响。
我发现了这个问题:
How to set cookie in node js using express framework?
基于此,我尝试在代码前面调用var express = require('express'); app.use(express.cookieParser());,但似乎没有任何区别。
有人知道我在哪里出错了吗?
【问题讨论】:
-
由于
if (req.cookies.user_token) {包装了设置 cookie 的代码,看起来您在设置 cookie 之前检查它是否存在。所以它永远不会被创建。 -
@Trott:不。我正在查看我已经打开的页面是否存在该 cookie;如果是这样,我希望它为我要去的页面重新创建。我 100% 确定 res.cookie 会被调用;我正在使用调试器逐步完成它。
-
并且您要重定向到的页面与设置 cookie 的页面在同一个域中?
-
@Trott:……这几乎肯定是问题所在。我认为这并不重要,但由于该重定向实际上是发送回浏览器而不是由服务器处理,所以它肯定会。啊。
标签: javascript node.js cookies express