javascript - Firebase 函数意外重定向到 accounts.google.com

标签 javascript firebase google-cloud-functions

<分区>

我有一个简单的 Firebase 函数,如下所示。当通过 javascript (CORS) 访问时,函数的飞行前选项的请求(CORS 标准的一部分)返回 302 重定向到以

开头的 url

https://accounts.google.com/ServiceLogin?service=ah&passive=true&continue=https://appengine.google.com/_ah/conflogin%3Fcontinue%3D

并以我的函数的 URL 结尾。这是有问题的整个功能:

import * as functions from 'firebase-functions';
import * as express from 'express';
import * as cors from 'cors';

const app = express();

app.use(cors({ origin: true }));

app.post('*', async (req, res) => {
  res.setHeader('X-Test', 'OK');
  res.setHeader('Set-Cookie', ['__session=ninja']);
  res.send('OK');
});

app.get('*', async (req, res) => {
  res.setHeader('X-Test', 'OK');
  res.setHeader('Set-Cookie', ['__session=ninja']);
  res.send('OK');
});

export const testing = functions.https.onRequest(app);

如您所见,该函数不包含任何重定向逻辑。如果我手动导航到浏览器中的重定向链接(accounts.google.com),它会显示某种 Google Compute Engine 安全页面,要求访问我的 Google 帐户。最近,当我通过 javascript 访问它们时,我以前工作的所有功能都开始使用此 302 重定向进行回复。这会阻止我的所有功能按预期工作。

我不能确定,但​​我认为它是在我尝试使用 Google Cloud Functions cli(而不是 Firebase Functions cli)发布函数之后开始的。感觉好像使用 gcloud cli 发布函数可能会触发某种设置更改?我找不到有关此问题的任何信息。

非常感谢任何帮助!

最佳答案

老天,问题是我在函数名称中输入错误!该函数的名称是 userAccount-testing,我正在调用 userAccount.testing。显然,当您调用一个不存在的函数时,您会得到 302 重定向作为响应。

在尝试诊断此问题时,我复制并粘贴了不同的函数名称,但碰巧从未将 . 更新为 -脸掌

关于javascript - Firebase 函数意外重定向到 accounts.google.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55007948/

相关文章:

javascript - 如何在 HTML5 中创建 "Pie Chart"?

javascript - 拒绝运行 JavaScript URL,因为它违反了以下内容安全策略指令

android - Firebase 数据库在 android 模拟器上不起作用

firebase - 关于Firebase读写

javascript - Android 获取唯一的 firebase token 并使用云功能进行身份验证

javascript - puppeteer 获取 href 数组,然后遍历每个 href 和该页面上的 href

javascript - 如何像播放列表一样以不同的时间间隔加载 iframe

ios - 带有 brozot/Laravel-FCM 的 laravel fcm 推送通知不适用于 ios,但在 android 上运行良好

java - Firebase 文档路径不得为 null Android

javascript - 如何从firestore获取数据到谷歌云功能?