小编Umu*_*ngo的帖子

firebase函数url重写破坏cookie

我有两个云函数,youtubeRedirect 和 youtubeToken。在进行 URL 重写之前(如此处找到的https://firebase.google.com/docs/hosting/functions),一切正常。

youtubeRedirect 将用户带到 Google 身份验证屏幕,并提供到 youtubeToken 函数的重定向。它设置这两个cookie

res.cookie('state', state.toString(), { maxAge: 3600000, secure: true, httpOnly: true });
res.cookie('UID', req.query.uid);
Run Code Online (Sandbox Code Playgroud)

当用户重定向到 youtubeToken 时,会检查 cookie 值; if (!req.cookies.state) {throw new Error('State cookie not set or expired.');}

当对我的自定义域使用 URL 重写时,此时会失败,因为 req.cookies 为空。当我在 Chrome 中检查 cookie 时,我可以看到已为我的自定义域设置了 cookie。我在 firebase.json 文件中重写了 youtubeRedirect 和 youtubeToken

"hosting": {
    "public": "api",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "/youtubeRedirect",
        "function": "youtubeRedirect"
      },

      {
        "source": "/youtubeToken",
        "function": "youtubeToken"
      }
    ] …
Run Code Online (Sandbox Code Playgroud)

cookies firebase firebase-hosting google-cloud-functions

2
推荐指数
1
解决办法
527
查看次数