【问题标题】:How to check if email is verified in Firebase using a parameter?如何使用参数检查是否在 Firebase 中验证了电子邮件?
【发布时间】:2021-05-17 06:06:22
【问题描述】:

我的计划是仅在电子邮件经过验证后才登录用户。我正在使用 if 语句检查电子邮件是否使用内置的“emailVerified”功能进行了验证,但它正在崩溃。

function login(email, password) {
  if (email.emailVerified) {
    console.log("trying to log user");
    return auth.signInWithEmailAndPassword(email, password);
  } else {
    console.log("failed to log user");
    alert("Please verify your email");
    return false;
  }
}

【问题讨论】:

    标签: javascript firebase firebase-authentication


    【解决方案1】:

    如果不登录,则无法确定是否在客户端 SDK 中设置了配置文件的 emailVerified 属性。因此,仅使用客户端 SDK,您将无法执行您的伪代码可以。

    可以做的是在可信环境(例如在 Cloud Functions 上)中创建自定义 API,您可以在其中使用 Admin SDKget a user profile by its email address,然后检查其 emailVerified 属性是否设置为真。然后,您可以从应用程序代码中调用此自定义 API。但这仍然无法阻止恶意用户自己调用signInWithEmailAndPassword 方法

    另外一种更简单的方法是先登录,然后检查电子邮件是否经过验证,如果电子邮件经过验证,则仅允许用户继续使用应用程序(并访问数据)。

    请注意,这个话题经常出现,所以我建议您也阅读一下:

    【讨论】:

      猜你喜欢
      • 2019-09-04
      • 2021-04-11
      • 2021-03-13
      • 2021-05-16
      • 1970-01-01
      • 2023-01-23
      • 2020-11-13
      • 1970-01-01
      • 2012-12-31
      相关资源
      最近更新 更多