我有一个使用Firebase数据库的小型个人Firebase Webapp。我想将此应用程序安全(锁定)给来自单个特定域的任何用户。我想向Google进行身份验证。我不清楚如何配置规则以说“只有来自单个特定域(例如@foobar.com
)的用户才能读写此数据库”。
(我看到的部分问题:很难用足够的信息来引导数据库以使此用例起作用。我需要在身份验证时知道用户的电子邮件,但auth
对象不包含电子邮件。这似乎是鸡蛋问题,因为我需要编写引用数据库中数据的Firebase规则,但该数据尚不存在,因为我的用户无法写入数据库。)
如果auth
有电子邮件,那么我可以轻松地编写规则。
提前致谢!
如果您使用的是新的Firebase,则现在可以实现,因为email
安全规则中提供了。
在安全规则中,您既可以访问电子邮件地址,也可以访问是否经过验证,这使得一些很好的用例成为可能。例如,使用这些规则,只有经过身份验证,已验证的gmail用户才能编写其个人资料:
{
"rules": {
".read": "auth != null",
"gmailUsers": {
"$uid": {
".write": "auth.token.email_verified == true &&
auth.token.email.matches(/.*@gmail.com$/)"
}
}
}
}
您可以在项目的Firebase数据库控制台中输入这些规则。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句