Node.js expressjs 会话不会留在 Firefox 中



我在nodejs中使用express,并且会话不会粘在Firefox中。 但是,在Chrome中工作正常。

我的maxAge为14400000,我已经阅读过这可能是一个问题,因为我的本地机器在GMT上,但它似乎仍然没有坚持下去。

这是我配置的:

  app.use(express.cookieParser());
  app.use(express.session({ secret: 'mysecret', store: new RedisStore, cookie: { maxAge: 14400000 }}));

我只是通过做来设置它:

req.session.user = 'something'

知道这可能是什么吗?

谢谢!

首次建立会话时尝试使用 req.session. regenerate(callback)。它看起来像这样:

app.use(express.cookieParser());
app.use(express.session({ secret: 'mysecret', store: new RedisStore, cookie: { maxAge: 14400000 }}));
var user = //Define your user
req.session.regenerate(function() {
   req.session.user = user;
   res.redirect('/loggedin');
});

试一试!

在不浪费时间的情况下,这里是修复程序:

app.use(
   session({
   httpOnly: false,
   secret: "top secret",
  })
 );

现在,如果您对真实故事感兴趣:

Mozilla是一个严格的浏览器。她遵守规则。如果某些东西在Mozilla中不起作用,但在chrome中不起作用,则意味着您做错了。在生产环境中,我们设置 https .默认情况下,express.session httpOnly 为真,只需将其设为假即可。:)所以它也可以在HTTPS上工作。

相关内容

最新更新