【问题标题】:Cookie not going throughCookie 没有通过
【发布时间】: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


【解决方案1】:

如果重定向的域(如 www.example.com)与尝试设置 cookie 的域(如 www.foo.io)不同(如 cmets 所示),则 cookie 将不会被浏览器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 2022-08-14
    • 1970-01-01
    • 2020-07-15
    • 2021-07-01
    • 1970-01-01
    • 2012-01-06
    相关资源
    最近更新 更多