Firebase 电子邮件和密码身份验证 - 访问用户密码

Firebase Email and Password Authentication - Accessing a Users Password

我们正在构建一个以 Ember JS 和 Firebase 作为后端的员工敬业度调查平台。

我们使用 Firebase 的电子邮件和密码身份验证来存储用户的密码。我们不会将密码存储在我们的 firebase 中。

申请流程如下:

  1. 管理员创建调查并添加问题
  2. 管理员将用户添加到调查中(包括姓名、电子邮件和密码)
  3. 管理员向用户发送电子邮件
  4. 用户登录并回复调查

从上面的工作流程可以看出,我们需要的功能之一是 "Email Manager",它根据用户的调查状态向用户发送电子邮件(例如:"Survey Not Started"、"Survey Partially Completed"等)

在我们发送的电子邮件中,我们需要发送用户的登录凭据(即电子邮件和密码)以使他们能够登录。示例电子邮件如下所示:

请使用以下访问详细信息在此 URL - www.voiceupsurvey.com 登录您的调查:

邮箱:bobtony@yourcompany.com

密码:XA3kdt3

对于我们如何做到这一点,您有什么建议吗?

具体来说,我不确定如何从 Firebase 身份验证存储中查询用户密码。

Firebase 不存储用户的密码,这将是一个巨大的安全风险。

相反,您可以向用户发送密码重置电子邮件。此电子邮件将包含一个 link,他们可以单击该电子邮件以重置密码。

您的应用程序流程为:

  1. 管理员创建调查并添加问题
  2. 管理员将用户添加到调查中(使用姓名、电子邮件和随机密码)
  3. 管理员向用户发送 密码重置 电子邮件
  4. 用户登录并回复调查

请注意,步骤 2 中的密码从未使用过,因此请将其设置得较长且不可猜测,以再次降低安全风险。

首先 - 您无法从 Firebase 查询用户密码。

其次 - 仅通过姓名和邮件甚至仅通过邮件将用户添加到调查听起来更好,并让用户 login/register 自己。

如果管理员将同一用户添加到多个调查中会怎样?

您可以有另一个密码来进入特定的调查,但它应该在单独的地方,而不是连接到用户身份验证详细信息。

如果您不想让任何用户登录,您可以在电子邮件中的 link 提供一些令牌,以验证用户是否可以注册。