2017-07-31 19 views
0

私はいつもAuth.SignInWithEmailAndPasswordAsyncのためにそれを使用することができますが、ユーザーのパスワードを覚えていますが、それは悪いセキュリティの練習です。ゲームを再開すると、Auth変数に再度ログインする必要があります。Firebase Unityは、パスワードを忘れずにログイン状態を維持する方法を教えてください。

最後にログインしたときと同じセッションを使用するにはどうすればよいですか?何度も何度も何度も保存して使用できるログイントークンはありますか? Firebaseには1時間で有効期限が切れるトークンがあり、それは狂っていると聞きました。

もちろん、ユーザーがゲームをやめてからもう一度再生を開始するセッションの間に1時間以上かかることがあります。 Firebaseを使って他の人がどのようにログインすることができますか?私は他のゲームで1時間ごとにログインすることを覚えていません。

答えて

1

セキュリティが不安な場合は、ユーザー名とパスワードを保存しないでください。

電子メールとパスワードの情報を格納するスクリプトを作成し、static文字列変数に格納するだけです。その後、新しいシーンが読み込まれたときにスクリプトが破棄されないように、そのスクリプトのAwake関数にDontDestroyOnLoad(gameObject);を追加します。


あなたは、ゲームを閉じて再度開いたときに利用できるようにするためにこの情報が必要な場合

は、あなたはメールアドレスとパスワード、 encryptを取得し、それを保存する必要があります。 自分のサーバー上で鍵を送信して保存することができます。他人が解読しにくくしたい場合や、デバイス自体に saveでもかまいませんが、鍵を保存する前に鍵に多くの操作を行う必要がありますそのように簡単に検索することはできません。

ログイン情報をロードするときは、read保存したファイルをdecryptとし、Auth.SignInWithEmailAndPasswordAsync関数に渡します。

+0

ありがとうございます。私は暗号化キーをサーバー側に保つアプローチを考えていませんでした。しかし、このようにしても、私はユーザーのパスワードを保管していることを意味しています。私はそのキーを持っているので、誰のパスワードも知ることができます。しかし、私はそれがサーバー側でユーザーのパスワードを保存するよりも良いと思うし、Firebaseがまだ長く生き残っているログイントークンを生み出すことができないなら、現時点で最善のものだと思う。 – 5argon

+1

* "この方法ではまだユーザーのパスワードを保存している私はキーがあるので誰ものパスワードを知っている "* ** Nope **。あなたは** **だけがサーバー上のキーを持っているので、そうではありません。暗号化されたファイルはユーザーのデバイスに保存されます。このユーザー情報を元に戻すには、キー+ファイルが必要です。また、復号化はサーバ側ではなくデバイス側で行われます。サーバーからキーを取得し、デバイス上のファイルのロックを解除/復号化するだけです。 – Programmer

0

IDトークンの有効期限は1時間ですが、無期限に更新されます。 Firebase Authセッションの有効期限は切れません。 Auth状態を正しく確認していますか?私はUnityに相当するものがわからないが、他のプラットフォームでは通常、ユーザがログインしているかどうかを検出するためにonAuthStateChangedをチェックする。

関連する問題