【问题标题】:Angular Firebase User Email Verification to a different emailAngular Firebase 用户电子邮件验证到另一封电子邮件
【发布时间】:2025-12-14 00:40:01
【问题描述】:

我的网站只接受来自特定域的电子邮件,本例是大学域。如果用户想使用 facebook 或 google 注册,他们需要验证他们是否有来自大学的电子邮件,但我找不到将验证电子邮件发送到大学电子邮件的方法。

我试过了

SendVerificationEmailSocialMedial(email) {
    return this.afsAuth.auth.currentUser.sendEmailVerification(email)
    .catch((error) => {
      window.alert(error)
    })
  }

SendVerificationEmailSocialMedial(email) {
    return this.afsAuth.auth.email.sendEmailVerification()
    .catch((error) => {
      window.alert(error)
    })
  }

这是唯一有效的方法

SendVerificationEmailSocialMedial(email){
    return new Promise((resolve, reject) => {
      this.afsAuth.auth.currentUser.updateEmail(email)
        .then(userData => {
          this.SendVerificationMail();
        }).catch(err => console.log(reject(err)))
    });
  }

我更改了用户的电子邮件,但我不想更改它,只是为了验证电子邮件,因为用户收到了包含更改的电子邮件

一个解决方案,但我不知道是否可能,我会更改用户的电子邮件,发送验证并将其更改回原始用户电子邮件,如果可行,那太棒了,但我不确定是否那完全可以。

【问题讨论】:

    标签: angular typescript firebase firebase-authentication angular7


    【解决方案1】:

    我怀疑这是不可能的,因为用户可能会使用他/她的 facebook,据推测该 facebook 未在 uni 电子邮件下注册。然后,用户使用此第 3 方电子邮件登录到 firebase-auth 系统。由于 firebase 只会将其识别为官方电子邮件而无需任何更改,因此您只能将电子邮件发送到此特定电子邮件地址。

    但是您可以做的是,在您询问他们的电子邮件的地方放置一个额外的注册流程页面,并告诉他们应该替换它以便注册到系统以获得完全访问权限..

    【讨论】:

    • 更改主电子邮件?不发送邮件可以更改用户的邮箱吗?
    • 我找到了一个使用 firestore 的解决方案,而不是使用 emailVerified 和 admin SDK。当用户登录时,应用程序将检查是社交媒体还是电子邮件,并根据它使用 firebase 唯一变量,如 emailVerified 或数据库 Cloud Store 中的用户 emailVerified 变量用户文档,当用户创建account 或 null 如果不使用社交媒体