我在为Firebase实时数据库中的多个用户寻找简单的身份验证机制。例如:我不希望所有数百万用户使用电子邮件和密码登录以实时访问Firebase。
我遇到了从以下文档创建自定义令牌。
https://firebase.google.com/docs/auth/admin/create-custom-tokens
我想清楚地了解这一点。这是否有助于通过自定义令牌以编程方式验证多个用户(分组为一个)而不是每个用户必须使用电子邮件地址和密码进行身份验证?或者这与我的想法有什么不同?
请指教。
答案 0 :(得分:0)
不,当您拥有自己的用户数据库时,会使用自定义令牌,这些用户数据库已使用您提供的其他形式的凭据登录到现有服务。
如果您没有自己的用户数据库,自定义令牌将无济于事。
此外,为了使用Firebase身份验证进行身份验证,不存在“分组”用户的问题。每个用户都有自己独特的身份和自己的凭据,这些凭据是彼此独立处理的。
答案 1 :(得分:0)
用户登录(身份验证)与访问数据库(授权)之间存在差异。
无法阻止用户使用您在Firebase控制台中启用的Firebase身份验证的内置提供程序进行身份验证。但是,只允许特定用户使用Firebase的服务器端安全规则访问数据库中的数据非常容易。
例如,如果您只想要特定用户访问权限,则可以设置其UID的白名单:
No active profile set, falling back to default profiles: default
现在,您可以编写一个简单的安全规则,该规则仅允许此列表中的用户读取您的数据库:
allowedUsers
uid1: true,
uid2: true,
uid3: true
答案 2 :(得分:0)
如果您拥有自己的身份验证服务但希望允许用户访问Firebase服务,则会使用自定义令牌。如果您希望用户能够在没有电子邮件和密码的情况下使用数据库,则可以use a provider(如Google)或使用Anonymous authentication,即用户登录并可以访问数据库时,但不必证明他们自己。您可以随时将它们添加为实际用户。
要允许经过身份验证的用户访问数据库,您可以使用以下规则:
// These rules require authentication
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}