【发布时间】:2019-11-20 05:44:52
【问题描述】:
我正在使用 Node.js 和 Express 构建一个 API,目的是让用户通过 API 调用访问它,并充当我的 Web 应用程序 (React.js) 的 RESTFUL 后端。
出于这个原因,我将 CORS Access-Control-Allow-Origin 设置为通配符 (*),因为它应该可以从外部源访问。
目前,API 运行在 localhost:8000,web-app 运行在 localhost:3000。
现在,我想在访问我的 /login 端点时设置一个 cookie。 cookie 不用于身份验证,所以我不担心 CSRF。
我正在这样设置 cookie:
res.cookie('token', 'value', {httpOnly:true});
当我使用 Postman 时,cookie 设置没有问题,但是当我尝试通过浏览器使用我的 webapp 访问它时,cookie 没有设置。
在阅读了几篇关于 Stack Overflow 的帖子后,我了解到在从我的 Web 应用程序执行 fetch 操作时需要设置 credentials: include。
问题在于,如果 Access-Control-Allow-Origin 设置为 (*),则浏览器不允许这样做。
有没有办法在这些情况下在浏览器上设置cookie?
谢谢
【问题讨论】:
标签: node.js api cookies browser cors