如何在Firebase上为cURL添加身份验证系统?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Firebase上为cURL添加身份验证系统?相关的知识,希望对你有一定的参考价值。

我正在使用Firebase进行一个小型项目,并且在测试事情时发现可以从任何服务器向Firebase数据库发出cURL请求(已在在线php测试器上进行了测试),因此我认为这是针对我的项目和我一直在寻找一种为cURL请求添加某种密码的方法,但我什么也没发现,至少我没能理解。我知道firebase有管理谁可以在我的数据库上读写的规则,但是我没有找到可以按服务器过滤请求或仅允许将具有特殊密码的请求作为参数发送的内容。所以我的问题是,是否有一种方法可以在我的项目中使用,所以只有为我提出的cURL请求才有效。

这是我的cURL请求之一,以防它有助于解决我的问题。

$url = "https://mydatabase.firebaseio.com/profile/messages/".$_COOKIE['cookiename'].".json";

                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch,  CURLOPT_RETURNTRANSFER, true);
                $response = curl_exec($ch);
                curl_close($ch);

                $data = json_decode($response, true);

感谢您帮助我。

更新:我发现了这一点,我认为这可能是我需要的东西,但是我错过了告诉数据库要求访问令牌的部分。 https://firebase.google.com/docs/database/rest/auth

答案

您应该阅读并理解documentation for the REST API。如果要绕过通常适用于Web和移动用户的安全规则,则需要为具有访问数据库权限的服务帐户生成OAuth令牌,并在请求中使用它。

如果您不希望公众访问您的数据库,则必须设置security rules来限制它。要停止所有公共访问,您的规则应为:

{
  "rules": {
    ".read": false,
    ".write": false
  }
}
另一答案

一种解决方法是使用Firebase Auth REST API

特别是,“您可以通过向Auth verifyPassword端点发出HTTP POST请求来使用电子邮件和密码登录用户,请参阅here

然后您可以在Firebase安全性规则中使用用户的uid,以保护您的数据库。

以上是关于如何在Firebase上为cURL添加身份验证系统?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Firebase 进行“使用 Spotify 登录”身份验证系统?

React/Rebase/Firebase 警告:权限被拒绝 - 如何添加用户身份验证?

如何将自定义消息添加到 Firebase Google 身份验证弹出窗口?

Firebase Cloud Functions shell:添加身份验证令牌以调用可调用对象

如何在颤动中使用facebook执行firebase身份验证[重复]

我已经在 firebase 项目设置调试以及 playconsole 上添加了指纹,但是电话身份验证不起作用如何解决这个问题?