作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 Firebase 数据库的小型个人 Firebase Web 应用。我想保护(锁定)这个应用程序给来自单个特定域的任何用户。我想通过 Google 进行身份验证。我不清楚如何配置规则以表示“只有来自单个特定域(例如 @foobar.com
)的用户才能读取和写入此数据库”。
(我看到的部分问题:很难用足够的信息引导数据库来使这个用例发挥作用。我需要在身份验证时知道用户的电子邮件,但是 auth
对象不包含电子邮件。这似乎是一个先有鸡还是先有蛋的问题,因为我需要编写引用数据库中数据的 Firebase 规则,但该数据尚不存在,因为我的用户无法写入数据库.)
如果 auth
有电子邮件,那么我可以轻松编写规则。
提前致谢!
最佳答案
如果您使用的是新版 Firebase,现在这是可能的,因为安全规则中提供了电子邮件
。
在安全规则中,您可以访问电子邮件地址及其是否经过验证,这使得一些很棒的用例成为可能。例如,根据这些规则,只有经过身份验证、验证的 Gmail 用户才能编写他们的个人资料:
{
"rules": {
".read": "auth != null",
"gmailUsers": {
"$uid": {
".write": "auth.token.email_verified == true &&
auth.token.email.matches(/.*@gmail.com$/)"
}
}
}
}
您可以在 Firebase Database console 中输入这些规则您的项目。
关于firebase - 如何将 Firebase 数据库锁定到特定(电子邮件)域中的任何用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44658626/
我是一名优秀的程序员,十分优秀!