2017-01-28 10 views
1

Touch IDオプションを自分のアプリに追加することに興味がありました。私はそれを実装する方法とエラーを処理する方法に関する多くのSOの投稿やその他の記事を見つけました。私の質問は、ユーザーがログインし、環境設定VCに行き、(デバイスがサポートしている場合)Touch IDを有効にすることです。Firebaseからユーザーの電子メールとパスワードを取得するにはどうすればいいですか?SwiftとTouch ID with Firebase

私は間違っているかもしれませんが、Firebaseがユーザーのパスワードを取得できるとは思いません。だから、私はちょうどユーザーがTouch IDを有効にしたい場合に備えて、VCのログからのパスワードを定数に格納し、それをVCからVCに渡しますか?偉大なオプションのいずれか..

編集

ように私は私の質問を明確にしたいようではありません

私のアプリでは、ユーザは電子メールとパスワードを使ってFirebaseを使ってアプリにログインします。その後、ユーザーが[email protected]とabc123を入力する代わりにTouch IDを有効にしたい場合、この電話では、ユーザーが[email protected]で、パスワードはabc123であることがわかります。

私の質問は次のとおりです。そのユーザーのメールアドレスとパスワードを取得するにはどうすればよいですか?私は電子メールのリストと私のデータベースに子供を持っていないと私はパスワードのリストを持っていない。ユーザーを取得するために私は考えることができる

唯一のものは、以下の

let user = FIRAuth.auth()?.currentUser 

である。しかし、それは、タッチIDログのための十分なのですか?それはランダムな文字列であり、彼のメールではない

パスワードはどのように取得できますか?

+0

最初の質問は次のとおりです。ユーザーがログインしている場合(何に?)、なぜ既にログインしているので、パスワードと電子メールを取得したいのですか?また、データベースにパスワードをクリアに保存することは決して良い選択ではないということは間違いありません。あなたはそれを暗号化することができますが、それはおそらくベストプラクティスではありません。 – Jay

+0

@Jay申し訳ありませんが、それが明確でない場合。ユーザーがfirebaseを通して私のアプリにログインした場合。そこで彼らは電子メールとパスワードを入力しました(すでにアカウントを作成しています)。後で自分の親指を使用するたびに電子メールとパスワードを入力するのではなく、ユーザーが自分の電子メールとパスワードを入力するように親指を置いた場合? – RubberDucky4444

+0

@Jay 2人の異なるユーザーがTouch IDを有効にすると、ユーザーAは親指を押し下げて、その電話だけにログインし、ユーザーBは親指を押し下げて、その電話のみにログインします。 ... – RubberDucky4444

答えて

1

FireIdでTouchIdがサポートされていない限り、ユーザー名とパスワードの組み合わせを自分で管理する必要があります。 Touch IDを有効にしてユーザー名/パスワードを保存するときには、ユーザーにユーザー名とパスワードを要求する必要があります。

重要な情報を保存する方法は、キーチェーンを使用することです。hereは、アップルのサンプルプロジェクトです。

次回は、Touch IDでユーザーログインを確認すると、ユーザー名/ pwをkeychainから取得し、ユーザーを認証します。