如何将 Firebase 数据库锁定到特定(电子邮件)域中的任何用户?

2024-01-04

我有一个使用 Firebase 数据库的小型个人 Firebase Web 应用程序。我想保护(锁定)这个应用程序给来自单个特定域的任何用户。我想通过 Google 进行身份验证。我不清楚如何将规则配置为“仅来自单个特定域的用户(例如@foobar.com)可以读取和写入该数据库”。

(我看到的部分问题是:很难用足够的信息引导数据库来使这个用例发挥作用。我需要在身份验证时知道用户的电子邮件,但是auth对象不包含电子邮件。这似乎是一个先有鸡还是先有蛋的问题,因为我需要编写引用数据库中数据的 Firebase 规则,但该数据尚不存在,因为我的用户无法写入数据库。)

If auth有了电子邮件,那么我就可以轻松地编写规则。

提前致谢!


如果您使用新的 Firebase,现在这是可能的,因为email可以在安全规则中找到。

在安全规则中,您可以访问电子邮件地址以及它是否经过验证,这使得一些很棒的用例成为可能。例如,通过这些规则,只有经过身份验证、验证的 Gmail 用户才能写入他们的个人资料:

{
  "rules": {
    ".read": "auth != null",
    "gmailUsers": {
      "$uid": {
        ".write": "auth.token.email_verified == true && 
                   auth.token.email.matches(/.*@gmail.com$/)"
      }
    }
  }
}

您可以在中输入这些规则Firebase 数据库控制台 https://console.firebase.google.com/project/_/database/rules您的项目。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Firebase 数据库锁定到特定(电子邮件)域中的任何用户? 的相关文章

随机推荐