首页 > 解决方案 > 如何仅注册使用 Firebase javascript 中的电子邮件链接验证其电子邮件地址的用户?

问题描述

我正在使用 Vue,这是我的注册方法,它的作用是注册任何电子邮件 ID……这意味着它甚至会注册我不拥有的电子邮件 ID,例如“test@example.com”,因为没有电子邮件确认..

我已经在 Firebase 控制台中配置了电子邮件验证。现在我希望注册方法发送一封验证邮件,并且只有在他/她验证了电子邮件后才注册用户。

我应该如何修改我现有的代码?我很困惑。

import firebase from 'firebase'
export default {
  name: 'signup',
  data: function () {
    return {
      email: '',
      password: ''
    }
  },
  methods: {
    signup: function (e) {
      firebase.auth().createUserWithEmailAndPassword(this.email, this.password)
        .then(user => {
          alert(`Account created for ${user.user.email}`)
          this.$router.go({ path: this.$router.path })
        },
        err => {
          alert(err.message)
        })
      e.preventDefault()
    }
  }
}

标签: javascriptfirebasevue.jsfirebase-authentication

解决方案


发送验证电子邮件的标准方法是使用该sendEmailVerification() 方法。

因此,您将按如下方式调整您的代码:

methods: {
   signup: function (e) {
      firebase.auth().createUserWithEmailAndPassword(this.email, this.password)
        .then(userCredential => {
            return userCredential.user.sendEmailVerification()
         })
         .then(function() {
            alert(`Account created for ${userCredential.user.email}`)
            this.$router.go({ path: this.$router.path })
         })
         .catch(err => {
            alert(err.message)
         })
      e.preventDefault()
   }
}

您将在文档中找到更多详细信息,特别是有关ActionCodeSettings可以传递给方法的类型参数的详细信息。

另请注意,您可以在 Firebase 控制台中自定义电子邮件的内容。


推荐阅读