仅允许 Firebase 云函数通过托管重写

Only allow Firebase cloud functions through hosting rewrites

TLDR/My 问题: 有没有办法为 Firebase 函数禁用自动生成的端点?

我已按照有关该域模式(我有 DNS 控制权)的说明 here so that my Firebase functions are available at custom endpoints (e.g. mydomain.com/api/function1). I then went ahead and successfully configured an API rate limiter with Cloudflare 进行操作,并验证它是否按预期正常工作。

给我留下的唯一问题是 Firebase 自动为我的函数(例如 us-central1-my-hosting-project.cloudfunctions.net/function1)提供的默认值 URL 仍然不受保护。

您想更改“Cloud Functions Invoker”权限。

现在,它可能会说

“allUsers”和“allAuthenticatedUsers”

Firebase 不显示此信息 - 但如果您:

  1. 转到 GCP 控制台中的主 Cloud Functions 菜单。(console.cloud.google.com/functions)
  2. Select您要调整权限的功能左侧的复选框。
  3. 看向屏幕右侧,当您选中复选框时,您会看到一些权限。
  4. 在role/member下查找,您将看到“Cloud Functions Invoker”;我这里说的是“allUsers”(我不能 post 图片但是,相信我,它很棒)。
  5. 您可以删除此行 - 它会使函数成为非public。
  6. 您必须允许某些东西调用该函数才能运行(服务帐户等)。

您将无法使用 GCP 工具执行此操作,至少目前是这样。

您可以做的替代方法是检查您的请求 Host header,如果它没有提供您的自定义域,return 就会出错。

你应该可以通过Request.hostname

得到host header