带有 Firebase 和 Heroku 的 Vue-cookies,没有被发送

Vue-cookies with Firebase and Heroku, not being sent

我在 firebase 上部署了一个 Vue.js 项目,在 Heroku 上部署了一个 node-express 应用程序。现在我想使用 Axios 将 cookie 连同每个请求一起发送到服务器。我正在使用 Axios 并且正在使用 vue-cookies(具有 sameSite: nonesecure: true 属性)设置 cookie。

在 localhost 中,我可以在后端看到每个请求中的 cookie,并且可以使用 req.cookies.session 访问它们。 (会话是我保存在客户端的cookie名称。)

但是在生产环境中,我看不到请求中的 cookie。我做错了什么?

node-express cors

app.use(cors({
  credentials: true,
  origin: 'https://paid-kickstartu-webapp.web.app',
  'Access-Control-Allow-Origin': '*',
}));

另附上我的 Axios 配置和 node-express 后端的屏幕截图,以便更多理解。一切正常,但 cookie 没有从前端发送到后端。在本地主机中,两者都按要求工作。

试试这个

如果您使用的是 Firebase 托管 + 云功能,__session 是您设计的唯一可以存储的 cookie。这对于我们能够有效地在 CDN 上缓存内容是必要的——我们从请求中删除除 __session 之外的所有 cookie。这应该记录在案,但似乎没有(哎呀!)。我们将更新文档以反映此限制。

此外,您需要将 Cache-Control Header 设置为私有

res.setHeader('Cache-Control', 'private');

谢谢大家的帮助。我已经解决了这个问题,我之前所做的是在 res body 中获取 cookie 并使用 vue-cookie 将 cookie 保存在 client-side 上,所以对后端的任何调用都显示我是空的饼干。但是现在我在登录期间从我的后端 (node-express) 设置 cookie header,现在当我发送任何进一步的请求时,我可以看到之前在我的 header 中设置的 cookie登录。