4

我正在将会话 cookie 设置为 PassportJS 的一部分。我可以看到 connect.sid cookie 被传递给浏览器,并在随后的 HTTP 请求中返回给应用程序。

但是,当我在其中一条路线中读取 req.cookies 时,它是空的。我在配置设置中设置了 express.cookieParser()、express.session() 和 passport.session()。为了在 Express / Node 中使用 cookie,还有什么需要做的吗?

这是我的应用程序配置设置:

app.configure(function () {
  app.set("db_url", config.db[app.settings.env]);
  app.set('port', process.env.PORT || 3000);
  app.use(express.logger('dev'));  /* 'default', 'short', 'tiny', 'dev' */
  app.use(express.static(path.join(__dirname, 'public')));
  app.use(express.cookieParser());
  app.use(express.bodyParser());
  app.use(express.session({secret: "keyboard cat"}));
  app.use(passport.initialize());
  app.use(passport.session());
  app.use(users);
  app.use(orgs);
  app.use(errorHandler);
});

谢谢!

4

1 回答 1

-1

试试req.sessionreq.cookies。如果您想在 cookie 中存储信息,您需要将它们设置为

res.cookie('remember', 1, { maxAge: 60 * 1000 });

那么req.cookies应该包含

{ remember: '1' }

req.session的默认值为

{ cookie: 
  { path: '/',
    _expires: null,
    originalMaxAge: null,
    httpOnly: true
  }
}
于 2013-01-19T12:16:24.937 回答