如何将Firebase Web App用户验证电子邮件发送到管理面板进行审核

时间:2019-05-25 18:02:40

标签: firebase firebase-authentication email-verification

我正在使用Firebase服务开发网站。这是一个俱乐部的网站。这个网站并不适合所有人。只有俱乐部会员才能访问文件和其他会员的数据。因此,如果用户已经在该网站上注册并请求验证电子邮件,则需要将该电子邮件发送到管理控制台电子邮件,而不是发送给该用户。然后,他们可以通过与用户联系来审核请求,并在确认后转发电子邮件。有什么办法可以做到吗?

在这种情况下,为所有成员创建用户帐户并授予访问权限不是一件容易和实际的事情(但有可能),因为该俱乐部已有50多年的历史,并且有5000多个成员可用,而且他们都在不同的工作地点国家。因此,我们不能创建每个用户帐户,也不允许未经授权的人员访问数据。

1 个答案:

答案 0 :(得分:0)

在用例中将各个动作/步骤分开是很重要的:

  1. 身份验证

    用户登录到您的应用程序的Firebase身份验证。这可以验证用户输入的凭据是Firebase身份验证(或社交身份提供商)为该用户存储的凭据。这无非就是让我证明自己是弗兰克,并使您的应用程序的任何其他用户“不可能”证明这一点。

  2. 电子邮件验证

    由于许多身份验证机制都基于电子邮件地址和密码的组合,因此知道电子邮件地址输入正确至关重要。通过Firebase身份验证的电子邮件验证机制,您可以确保用户有权访问他们输入的电子邮件地址。

  3. 授权

    基于经过身份验证的用户,您可以授予对应用程序内其他资源的访问权限。但是,这超出了Firebase身份验证的范围,并且取决于其他资源。

    例如,如果您使用Firebase实时数据库或Cloud Firestore,则将使用这些数据库的安全规则来确保所有数据访问均得到授权。我对以下问题的回答是一个简单的示例,仅允许gmail用户访问实时数据库中的数据:How do I lock down Firebase Database to any user from a specific (email) domain?。如果您有一个要允许所有用户使用的自定义域,则这种方法将无需手动验证所有用户:您可以只允许自定义域中的所有已验证电子邮件地址。

    如果您的特定情况允许用户输入任何域,则通常将有一个预定义的电子邮件地址列表。在这种情况下,请考虑将该列表存储在数据库中,并根据安全规则进行验证。在我对以下问题的回答中可以找到Cloud Firestore的一个示例:Prevent user account creation with sign in by email in firestore