Node JS cookie解析器无法正常工作

时间:2016-05-21 18:11:24

标签: javascript angularjs node.js cookies

我正在关注https://www.codementor.io/nodejs/tutorial/cookie-management-in-express-js的教程。我想在我的网络应用程序中使用cookie来验证我使用Node JS构建的API的请求。要在用户登录时设置cookie,我使用以下代码行:

res.cookie('crewcookie', userkey, { maxAge: 9000000, httpOnly: true });
res.status(200).json({status: 1, data: userdata});

由于httpOnly为true,我尝试检查cookie时,如下所示向我的API发出另一个请求:

console.log(req.cookies);

在我的脚本顶部,我有以下内容:

var cookieParser = require('cookie-parser');
app.use(cookieParser());

我似乎不能正常工作,因为当我在后续请求中检查cookie时,日志会显示:

{}

值得一提的是我在前面使用Angular JS。我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

我在React上也遇到了类似的问题,花了一段时间才意识到问题可能出在开发环境和生产环境中使用cookie。如果您在设置“ req.cookies”后立即登录,则可以肯定地看到它已保存-稍后将其删除(可能在重定向之后)。
但是,在生产环境中,设置了cookie(就我而言),可以在重定向后使用req.cookies进行检索。
我会在需要cookie的代码中添加一个if语句,如下所示(表达):

if (process.env.NODE_ENV === 'production'){...}

以便仅在生产环境中使用cookie。