Firebase Web - 重置密码不起作用?

时间:2018-02-09 08:58:45

标签: node.js firebase firebase-authentication

我尝试创建重置密码页面。但是,如果我应用它向我显示的动作代码,则代码无效。但它应该是有效的。所以我猜我做的方式是错的?!我还有一个验证电子邮件页面,我也使用applyActionCode,它工作正常。是的,我100%确定oobCode必须正确。

console.log(this.$route.query.oobCode.toString())
firebase.auth().applyActionCode(this.$route.query.oobCode.toString()).then(
    (user) => {
        cosnole.log('user', user)
        user.updatePassword(this.password).then(
            function(user) {
                console.log('password updated')
            }).catch(
            function(err) {
                console.log(err.message)
            }
        )
    }).catch(
    function(err) {
        console.log(err.message)
    }
)

1 个答案:

答案 0 :(得分:2)

使用firebase auth重置用户密码时需要了解一些事项。

applyActionCode返回包含void的{​​{3}}。

用户来自最近通过身份验证的用户的firebase.auth().currentUserfirebase.Promise还会返回包含void

updatePassword

可以选择使用firebase.Promise组合上述两个。

重要提示:代码必须是由confirmPasswordReset方法生成的电子邮件返回的有效操作类型(PASSWORD_RESET

代码类似于以下内容

firebase.auth().applyActionCode(this.$route.query.oobCode.toString())
  .then( () => {
    const user = firebase.auth().currentUser
    user.updatePassword(this.password).then(
      () => {
        console.log('password updated')
      })
   .catch(
     error => {
       console.log(error.code, error.message)
     })        
  }
  .catch(error => {
    console.log(error.code, error.message)
  })

sendPasswordResetEmail

firebase.auth().confirmPasswordReset(this.$route.query.oobCode.toString(), this.password)
  .then( () => {
    console.log('password updated')
  }
  .catch(error => {
    console.log(error.code, error.message)
  })

注意: 我尚未确认您的代码版本以更新密码,但已使用confirmPasswordReset