Firebase功能意外重定向到account.google.com

时间:2019-03-05 16:58:45

标签: javascript firebase cors google-cloud-functions

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

开头的网址

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发布函数可能触发了某种设置更改?我找不到有关此问题的任何信息。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

在尝试诊断此问题时,我正在复制并粘贴不同的函数名称,而恰好从未将.更新为-手掌