我正在关注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。我在这里做错了什么?
答案 0 :(得分:0)
我在React上也遇到了类似的问题,花了一段时间才意识到问题可能出在开发环境和生产环境中使用cookie。如果您在设置“ req.cookies”后立即登录,则可以肯定地看到它已保存-稍后将其删除(可能在重定向之后)。
但是,在生产环境中,设置了cookie(就我而言),可以在重定向后使用req.cookies进行检索。
我会在需要cookie的代码中添加一个if语句,如下所示(表达):
if (process.env.NODE_ENV === 'production'){...}
以便仅在生产环境中使用cookie。