快递中的req.cookies没有被填充

时间:2013-01-18 20:57:18

标签: node.js cookies express passport.js

我正在设置会话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);
});

谢谢!

1 个答案:

答案 0 :(得分:-1)

尝试req.session代替req.cookies。如果要在cookie中存储信息,则需要将它们设置为与

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

然后req.cookies应包含

{ remember: '1' }

req.session的默认值为

{ cookie: 
  { path: '/',
    _expires: null,
    originalMaxAge: null,
    httpOnly: true
  }
}