尝试匿名登录 Firebase 时,引荐来源请求被阻止

Posted

技术标签:

【中文标题】尝试匿名登录 Firebase 时,引荐来源请求被阻止【英文标题】:Requests for referrer are blocked when trying to sign in anonymously to Firebase 【发布时间】:2019-06-01 23:44:18 【问题描述】:

我正在尝试使用 JS SDK 从 Web 应用程序匿名登录,它在某些环境中运行良好,但在一个环境中,与在其他地方运行的完全相同的代码给了我 403:

(index):64 “error”:“code”:403,“message”:“referer https://myapp.firebaseapp.com/ 的请求被阻止。”,”errors”:[“message”:“referer 的请求https://myapp.firebaseapp.com/ 被屏蔽。“,”域”:“全局”,“原因”:“禁止”],“状态”:“PERMISSION_DENIED”

但我认为我检查了所有环境中的所有内容都相同:启用了匿名身份验证,并且我的 Web 应用位于 Firebase 托管上,因此代码应该与环境无关。

知道这还能从哪里来吗?

【问题讨论】:

您找到解决方案了吗? 遇到同样的问题,能否提供适合您的解决方案 【参考方案1】:

您似乎对您的 API 密钥设置了一些引荐来源网址限制。您需要前往 Google Cloud Console 并修改对 API 密钥的这些限制。

【讨论】:

哪个 API 密钥?因为我已经检查过了,并且引用者限制似乎与其他环境一致。【参考方案2】:

为了使其正常工作,我为我的“浏览器密钥”添加了以下“网站限制”:

https://www.googleapis.com/ https://firebaseinstallations.googleapis.com/

【讨论】:

【参考方案3】:

这对我有帮助:

console cloud google -> API 和服务 -> 凭据 -> 点击:浏览器密钥(由 firebase 自动创建)-> 应用程序限制:无 & API 限制:不限制密钥。

现在您的 API 不会阻止任何请求。我希望这行得通!

【讨论】:

【参考方案4】:

解决方案

我在谷歌云平台上将我的应用程序设置为“http referrers”,并试图访问 Firebase 存储中的文件。当我没有登录时,无法访问该文件。 我在这里找到了,然后用谷歌搜索了referrer restrictions firebase storage

我的解决方案

我在official docs 中看到了 Firebase 存储的安全规则。我检查了规则,默认是allow read, write: if request.auth != null;。我改成allow write: if request.auth != null; allow read: if true;

然后一切正常。

【讨论】:

以上是关于尝试匿名登录 Firebase 时,引荐来源请求被阻止的主要内容,如果未能解决你的问题,请参考以下文章

基于 IP 和引荐来源的 PHP 重定向

PHP HTTP 引荐来源网址

在此服务器上找不到请求的 URL。引荐页面上的链接似乎错误或过时

尽管政策允许我的站点引荐来源网址,但 S3 存储桶上的 copyObject 访问被拒绝

在 JavaScript 中隐藏/欺骗引荐来源网址的最可靠方法是啥?

如何将自定义引荐来源发送到网址?