【问题标题】:How do I enable `cookie-session` with Firebase [duplicate]如何使用 Firebase 启用 `cookie-session` [重复]
【发布时间】: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


【解决方案1】:

here,您的查询一定会得到解决。

【讨论】:

  • 知道如何让它与护照 js 一起使用吗?该文档看起来需要通过执行signInWithEmailAndPassword 函数获得的idToken,因为我在Facebook 上设置了passport js。
【解决方案2】:

当使用 firebase 托管的重写规则代理请求时,唯一允许的 cookie 是 __session

这在https://firebase.google.com/docs/hosting/manage-cache#using_cookies 中有记录。

【讨论】:

    猜你喜欢
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 2020-11-03
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    相关资源
    最近更新 更多