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