2016-02-17 3 views
0

Я пытаюсь получить пароль пользователя, когда я делаю аутентификацию по электронной почте/паролю ...Получение пароля?

Но когда я делаю getAuth()/onAuth() .. Объект - это только адрес электронной почты, uid, токен, и т. д., но не пароль.

Причина, по которой мне нужен пароль, заключается в том, что я хочу иметь возможность изменять пароль пользователей. И для этого вам нужен пользователей старого пароль в синтаксисе состояния angularfire Документов

var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com"); 
ref.changePassword({ 
    email  : "[email protected]", 
    oldPassword : "correcthorsebatterystaple", 
    newPassword : "neatsupersecurenewpassword" 
}, function(error) { 
    if (error === null) { 
    console.log("Password changed successfully"); 
    } else { 
    console.log("Error changing password:", error); 
    } 
}); 

Thankyou.

+1

Если вы правильно разработали приложение, единственный способ узнать пароль пользователя - это задать им вопрос. У вас есть форма, где пользователь может предоставить старые и новые пароли? – tadman

+0

Крайне плохой практикой для любого сервиса является доступ к фактическому паролю пользователей. Обычно поставщики услуг сохраняют ключ, созданный с помощью пароля пользователя, и сохраняют его. Итак, как отмечалось выше, вам нужно попросить у пользователя свой старый * и * новый пароль, чтобы разрешить изменение. – idan

+0

Firebase знает старый пароль, поэтому вам просто нужно попросить пользователя его и передать вход в 'changePassword'. Вам не нужно знать старый пароль, так как Firebase делает это сам. – mjr

ответ

0

Вы можете сохранить пароль в базе данных firebase. Который я не рекомендую, так как вы будете vurnable для атак. Но я бы рекомендовал пользователю ввести старый пароль. И проверьте, написано ли это. Затем Procced для изменения пароля пользователя. Как объяснено в Кодексе (добавлено Sweet-Alert, чтобы сделать его полезным :)):

var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com"); 

ref.onAuth(function(authData) { 

    swal({ 
     title: "Old Password!", 
     text: "Write Old Password", 
     type: "input", 
     showCancelButton: true, 
     closeOnConfirm: false, 
     animation: "slide-from-top", 
     inputPlaceholder: "OldPassword..." 
    }, function(inputValue) { 
     if (inputValue === false) return false; 
     if (inputValue === "") { 
      swal.showInputError("You need to write something!"); 
      return false 
     } 
     $scope.originalPassword = inputValue 


     swal({ 
      title: "New Password!", 
      text: "Write New Password", 
      type: "input", 
      showCancelButton: true, 
      closeOnConfirm: false, 
      animation: "slide-from-top", 
      inputPlaceholder: "NewPassword..." 
     }, function(inputValue) { 
      if (inputValue === false) return false; 
      if (inputValue === "") { 
       swal.showInputError("You need to write something!"); 
       return false 
      } 
      $scope.NewPassword = inputValue 

      ref.changePassword({ 
       email: authData.password.email, 
       oldPassword: $scope.originalPassword, 
       newPassword: $scope.NewPassword 
      }, function(error) { 
       if (error === null) { 
        swal("Nice!", "Password Changed Succesfully!", "success"); 
       } 
       else { 
        sweetAlert("Oops...", "Error Changing Password" + error, "error"); 
       } 
      }); 



     }); 




     swal("Nice!", "You wrote: " + inputValue, "success"); 
    }); 


}) 
Смежные вопросы