【发布时间】:2019-04-08 12:36:36
【问题描述】:
在生产环境中使用 Firebase 函数时,我遇到了 cookie-session 的问题。我在 Firebase Hosting 中有一个 React 应用程序,在 Functions 中有一个 Express 应用程序(我将其用作我的 API),并且我创建了一个模板存储库来演示此设置以供所有人查看 (https://github.com/cjmyles/firebase-react-express)。
我正在从 React 应用程序对 /api/* 进行 fetch 调用(注意缺少完全限定的 url),并且该请求在开发模式下使用 proxy 配置值 package.json 代理到 API;并使用firebase.json 中的rewrites 配置值代理到生产环境中的API。
在我开始使用会话之前,这一切正常。我有一些使用 PassportJS 模拟登录请求的代码,其中用户信息存储在会话中,这适用于开发模式,但不适用于生产。我觉得这和饼干有关。我在我的快递应用程序中使用cookie-session,并且我确保secure 标志在生产中设置为true(因为它通过https 提供),但我认为cookie 没有被传递给当请求通过 Firebase rewrites 代理时,API 正确。
我是否需要向firebase.json 添加一些内容才能在生产中启用cookie-session?
【问题讨论】:
-
您的问题解决了吗?我现在也有同样的问题。
-
是的,在初始化 npm 模块
cookie-parser之后,我使用了“__session” cookie,它可以使用res.cookie设置并在 Express 中间件中使用req.cookies检索。我在下面接受了 Rafael 的回答,其中更详细地介绍了解决方案。如果需要,我可以提供完整的答案。
标签: reactjs firebase google-cloud-functions