我有一个简单的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发布函数可能触发了某种设置更改?我找不到有关此问题的任何信息。
非常感谢您的帮助!
答案 0 :(得分:0)
就我而言,问题在于我在函数名称中输入错误!该函数的名称为userAccount-testing
,而我正在调用userAccount.testing
。显然,当您调用不存在的函数时,会得到302重定向作为响应。
在尝试诊断此问题时,我正在复制并粘贴不同的函数名称,而恰好从未将.
更新为-
。 手掌