Web Firebase仅授权方案:如何向用户传递凭据?

Web Firebase仅授权方案:如何向用户传递凭据?,web,firebase,firebase-authentication,Web,Firebase,Firebase Authentication,这是我的问题。要访问我们的应用程序,必须邀请用户 这意味着,我们使用管理员web应用程序在Firebase中创建用户帐户,并向他发送下载应用程序并使用它的邀请 现在进入下一阶段,我们如何向新创建的用户发送其凭据? 我们的第一个想法是使用临时密码。我们可以通过电子邮件向用户发送密码,并要求他在第一次登录时重新定义密码 这是个好主意吗?我想不是 有更好的办法吗 谢谢你的帮助。 T无法阻止用户使用Firebase身份验证进行身份验证。因此,您应该确保只有授权用户才能访问数据,而不是依赖于预创建帐户 例

这是我的问题。要访问我们的应用程序,必须邀请用户

这意味着,我们使用管理员web应用程序在Firebase中创建用户帐户,并向他发送下载应用程序并使用它的邀请

现在进入下一阶段,我们如何向新创建的用户发送其凭据?

我们的第一个想法是使用临时密码。我们可以通过电子邮件向用户发送密码,并要求他在第一次登录时重新定义密码

这是个好主意吗?我想不是

有更好的办法吗

谢谢你的帮助。
T

无法阻止用户使用Firebase身份验证进行身份验证。因此,您应该确保只有授权用户才能访问数据,而不是依赖于预创建帐户

例如,使用Firebase数据库时,可以在数据库中保留授权用户列表:

/authorizedEmails
  t4ncr3d3@hisdomain,com: true
  puf@hisdomain,com: true
然后,您将根据中的列表检查
auth.email
变量

然后,您可以通过电子邮件向用户发送应用程序邀请,而不是预先创建帐户。例如,带有链接的电子邮件,如

然后,当他们单击链接时,使用您发送邮件的电子邮件地址预先填充注册表单,并调用
createUserWithEmailAndPassword()

您可以使用新的(自2016年11月起)库(java或节点)以编程方式从服务器端创建用户

之后,您可以通过电子邮件向用户发送电子邮件和密码,并且只允许。不幸的是,你不能强迫未经邀请的人停止使用你的应用程序进行身份验证,因为他们可以手动调用用于自己创建新帐户的API,正如你在同一页上看到的那样。但是,您没有义务通过UI提供登录机制。他们必须使用浏览器键入和调用创建帐户所需的JS

如果你同意人们强制创建帐户,但你想锁定他们的访问权限,那么你可以做一些类似于Frank在另一个回答中提到的事情,通过使用数据库的管理控制来限制对那些你创建并邀请的用户的访问,在数据库中使用特殊标志(只有您可以使用admin SDK进行修改)该应用程序作为应用程序的网关。如果您正确执行了安全性,则应该可以阻止您未邀请的人使用该应用程序,即使他们可以有效地使用该应用程序进行身份验证