2017-10-26 1 views
0

Firebase에서 온라인 데이터베이스로 사용하는 iOS 응용 프로그램을 실제로 개발 중입니다. 개념은 다음과 같습니다. 사용자가 firebase 인증 전자 메일 및 암호로 등록한 다음 데이터베이스에 전자 메일과 암호를 씁니다. 하지만 Firebase Auth send password reset을 사용하여 메일 재설정 비밀번호를 구현하려고했습니다. 이 함수는 잘 작동하지만 데이터베이스의 암호도 업데이트하려고합니다. 나는 그것을 모른다. 나는 비밀 번호를 복구 할 수있는 방법, 사용자에게Firebase 데이터베이스에서 암호를 어떻게 복구합니까? Auth Firebase 데이터베이스에서 암호 메일 재설정

@IBOutlet weak var txt_mail: UITextField! 
Auth.auth().sendPasswordReset(withEmail: txt_mail.text!) { (error) in 
      let alertController = UIAlertController(title: "Error", message: error?.localizedDescription, preferredStyle: .alert) 
      let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil) 
      alertController.addAction(defaultAction) 
      self.present(alertController, animated: true, completion: nil) 
     } 

이 코드 전송 재설정 이메일 및 우편으로 그를 보내 링크에서 자신의 암호를 변경 user'll : 여기 내 코드?

답변

0

먼저 사용자 비밀번호를 저장하는 이유는 무엇입니까? 일반 텍스트로 저장하고 있습니까? 이것은 확실히 안전하지 않으며 나는 이것을하지 않는 것이 좋습니다.

Firebase 아니요 사용자 비밀번호를 저장합니다. 암호 해시를 저장합니다. 이것은 암호를 저장하는 올바른 방법이며 일반 텍스트로 변환 할 수 없습니다. 또한 사용자의 비밀번호를 가져 오는 API가 없습니다. 다시 이것은 보안 문제 때문입니다.

듣고 싶지 않은 경우. 그렇다면 잠재적 인 옵션은 하나뿐입니다. changePasswordForUser()을 사용하면 앱에서 비밀번호를 업데이트 할 수 있습니다. 그러나 이는 사용자가 사용자가 현재 암호를 알고 있어야합니다. 알 수없는 암호를 재설정하는 유일한 방법은 resetPasswordForUser()입니다.

그러나 암호를 데이터베이스에 저장 했으므로 암호를 사용하여 사용자를 인증 한 다음 암호를 업데이트 할 수있는 대안을 설계하거나 다음에 서명 할 때 암호를 업데이트하도록 요청할 수 있습니다 (업데이트 된 비밀번호로 다시 인증하여 정확한지 확인하십시오). 다시 내가 할 하지 이렇게하는 것이 좋습니다.

How to get an authenticated users password and email

Manage Users in Firebase

How to verify users current password?

:

자세한 내용은 다음 링크에서보세요