Google Firebase忘记了密码

时间:2016-07-02 12:02:29

标签: javascript html firebase firebase-authentication

如何在我的方法中实现忘记密码方法。我正在创建一个即将到期的HTML项目。我的代码:

    function toggleSignIn() {
   if (!firebase.auth().currentUser) {
// [START createprovider]
var provider = new firebase.auth.GoogleAuthProvider();
// [END createprovider]
// [START addscopes]
provider.addScope('https://www.googleapis.com/auth/plus.login');
// [END addscopes]
// [START signin]
firebase.auth().signInWithPopup(provider).then(function(result) {
  // This gives you a Google Access Token. You can use it to access the    Google API.
  var token = result.credential.accessToken;
  // The signed-in user info.
  var user = result.user;
  // [START_EXCLUDE]
  document.getElementById('quickstart-oauthtoken').textContent = token;
  // [END_EXCLUDE]
}).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  // The email of the user's account used.
  var email = error.email;
  // The firebase.auth.AuthCredential type that was used.
  var credential = error.credential; 
  // [START_EXCLUDE]
  if (errorCode === 'auth/account-exists-with-different-credential') {
    alert("You have already signed up with a different auth provider for that email.");
    // If you are using multiple auth providers on your app you should handle linking
    // the user's accounts here.
  }
else if (errorCode === 'auth/auth-domain-config-required') {
alert("An auth domain configuration is required"); 
  }
  else if (errorCode === 'auth/cancelled-popup-request') {
      alert("Popup Google sign in was canceled");
  }
  else if (errorCode === 'auth/operation-not-allowed') {
      alert("Operation is not allowed");
  }
  else if (errorCode === 'auth/operation-not-supported-in-this-environment')      {
      alert("Operation is not supported in this environment");
  }
  else if (errorCode === 'auth/popup-blocked') {
      alert("Sign in popup got blocked");
  }
  else if (errorCode === 'auth/popup-closed-by-user') {
      alert("Google sign in popup got cancelled");
  }
  else if (errorCode === 'auth/unauthorized-domain') {
      alert("Unauthorized domain");
  }
   else {
    console.error(error);
  }
  // [END_EXCLUDE]
  });
  // [END signin]
  } else {
     // [START signout]
    firebase.auth().signOut();
    // [END signout]
    }
   // [START_EXCLUDE]
  document.getElementById('quickstart-sign-ing').disabled = false;
  // [END_EXCLUDE]
 }

以下链接可为您提供指导: https://firebase.google.com/docs/auth/web/manage-users#set_a_users_password 请你帮帮我

2 个答案:

答案 0 :(得分:14)

要实现忘记密码按钮,您必须致电: firebase.auth().sendPasswordResetEmail('user@example.com')

查看文档以获取更多详细信息: https://firebase.google.com/docs/reference/js/firebase.auth.Auth#sendPasswordResetEmail

答案 1 :(得分:0)

实现恢复忘记的密码功能的最简单方法是致电

import { AngularFireAuth } from "@angular/fire/auth";

constructor(
    public afAuth: AngularFireAuth
  ) {  }

  // Reset Forggot password
  ForgotPassword(passwordResetEmail) {
    return this.afAuth.auth.sendPasswordResetEmail(passwordResetEmail)
    .then(() => {
      window.alert('Password reset email sent, check your inbox.');
    }).catch((error) => {
      window.alert(error)
    })
  }