【发布时间】:2016-09-18 21:15:39
【问题描述】:
我正在关注https://www.codementor.io/nodejs/tutorial/cookie-management-in-express-js 的教程。我想在我的 Web 应用程序中使用 cookie 来验证对我使用 Node JS 构建的 API 的请求。要在用户登录时设置 cookie,我使用这行代码:
res.cookie('crewcookie', userkey, { maxAge: 9000000, httpOnly: true });
res.status(200).json({status: 1, data: userdata});
由于 httpOnly 为真,我尝试在向我的 API 发出另一个请求时检查 cookie,如下所示:
console.log(req.cookies);
在我的脚本顶部,我有以下内容:
var cookieParser = require('cookie-parser');
app.use(cookieParser());
我似乎无法正常工作,因为当我在后续请求中检查 cookie 时,日志显示如下:
{}
可能值得一提的是,我在前面使用的是 Angular JS。我在这里做错了什么?
【问题讨论】:
-
API 是否在与正在加载的页面相同的域和端口上设置/检查 cookie?
-
我不知道它必须在同一个端口上。有没有办法让它只有同一个域,还是我别无选择?
-
如果不同的端口被浏览器视为跨域。要从客户端发送 cookie,需要在所有请求上使用
withCredentials。请参阅$http文档
标签: javascript angularjs node.js cookies