【问题标题】:Cookie shows in callback url, but not in browser cookie storageCookie 显示在回调 url 中,但不在浏览器 cookie 存储中
【发布时间】:2016-07-29 07:31:03
【问题描述】:

我正在尝试将facebookPicUrl 图片保存在 cookie 中。我在回调请求中看到了,但是在浏览器的cookie存储中没有看到。需要明确的是,会话 cookie 没有问题。

auth.route('/auth/facebook/callback')
  .get(function(req, res, next) {
    passport.authenticate('facebook', function(err, userDoc, info) {
      if (err) { return next(err); }
      // I don't think !userDoc will ever happen because of mongo upsert
      if (!userDoc) { return res.redirect('/login'); }
      res.cookie('facebookPicUrl', userDoc.value.facebook.picture, {maxAge : 99999,
      httpOnly: false,
      secure: false,
      signed: false
      });
      res.redirect('http://127.0.0.1:9000/users')
    })(req, res, next);
  });

这里是回调地址:

但不在 cookie 存储中:

【问题讨论】:

  • 我在第一张图片中看到 cookie facebookPicUrl 的过期时间约为 1.6 分钟。也许cookie已经过期并被浏览器自动删除!我还看到请求 cookie 包含 facebookPicUrl。这意味着,浏览器之前确实存储了您的 facebookPicUrl cookie。所以我假设您的 facebookPicUrl cookie 已过期。能否延长过期时间?
  • 不,我随后检查了......在 1.6 分钟内很好。另外,我把 cookie 时间改成了 2.8 小时,还是没有显示出来。
  • 由于这个cookie不是httpOnly,我们可以在Chrome控制台中运行document.cookie来检查输出的内容吗?
  • 正确,它只显示会话 cookie...facebookPicUrl cookie 不存在。
  • 有趣,也许 facebookPicUrl 已从其他地方删除。

标签: javascript node.js facebook cookies passport.js


【解决方案1】:

res.redirect('http://127.0.0.1:9000/users')是硬编码值,猜测req.headers.host不匹配'127.0.0.1'

【讨论】:

    猜你喜欢
    • 2020-05-05
    • 2013-07-04
    • 1970-01-01
    • 2021-06-29
    • 2021-06-04
    • 2018-10-30
    • 1970-01-01
    • 2021-10-13
    • 2017-10-07
    相关资源
    最近更新 更多