<分区>
我有一个简单的 Firebase 函数,如下所示。当通过 javascript (CORS) 访问时,函数的飞行前选项的请求(CORS 标准的一部分)返回 302 重定向到以
开头的 urlhttps://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 发布函数可能会触发某种设置更改?我找不到有关此问题的任何信息。
非常感谢任何帮助!