2017-10-26 4 views
0

Firebaseをオンラインデータベースとして使用しているSwiftのiOSアプリを実際に開発しています。 そのコンセプトは次のとおりです。ユーザーはfirebase Authentificationの電子メールとパスワードでサインアップしてから、電子メールとパスワードをデータベースに書き込みます。 しかし、今度は、Firebase Auth send password resetを使ってReset mailパスワードを実装したかったのです。 この機能はうまく機能しますが、データベースのパスワードも更新したいと考えています。 私はそれをすることを知らない。ここ は私のコードです: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

まず、ユーザーパスワードを保存する理由は何ですか?それらを平文で保管していますか?これは確かに安全ではありません、私はあなたがこれをしないことをお勧めします。

ファイアベースDo not NOTユーザーのパスワードを格納します。パスワードのハッシュを格納します。これはパスワードを保存する適切な方法であり、プレーンテキストに変換することはできません。さらに、ユーザーのパスワードを取得するためのAPIはありません。これはセキュリティ上の問題によるものです。

あなたが聴きたくない場合。次に、潜在的な選択肢は1つだけです。 changePasswordForUser()を使用すると、アプリでパスワードを更新できます。ただし、これはユーザーが現在のパスワードを知っている必要があります。知られていないパスワードをリセットする唯一の方法は、resetPasswordForUser()です。

しかし、データベースにパスワードを保存しているため、そのパスワードを使用してユーザーを認証してからパスワードを更新するように設計することもできます。また、次回署名時にパスワードを更新するようユーザーに依頼できます(更新されたパスワードで再認証して、正確であることを確認することができます)。もう一度やりますNOTこれを行うことをお勧めします。

How to get an authenticated users password and email

Manage Users in Firebase

How to verify users current password?

詳細については、これらのリンクを見てみましょう

関連する問題