2016-11-23 5 views
1

私は電子メールパスワードのユーザー認証を使用していて、 "私を覚えている"機能を実装しようとしていますが、これまでのところ運が全くありません。Firebase Unityプラグイン:どのようにユーザセッションを永続化しますか? (自動サインイン)

私はトークンパターンを試しましたが(ユーザーがゲームを再び開いたときにSignInWithCustomTokenAsync()を使用して署名トークンをメールに送信してからトークンをサーバに返す)毎回例外メッセージで失敗しました

カスタムトークン形式が正しくありません。ドキュメントを確認してください。

FirebaseトークンがFirebase(私がチェックした有効なJWTです)の形式が悪いと見なされる場合は、どうやってユーザーセッションを維持しますか?

確かに、ユーザーのメールアドレスとパスワードをplayerprefsなどに保存することはできますが、そのようなセキュリティ上の悪い習慣であるため、10フィートの極では触れません。

答えて

0

私が知っている限り(私は専門家ではありません)、Unity SDKを通じてトークンを作成することはできません。 Admin SDK(https://firebase.google.com/docs/auth/admin/create-custom-tokens)を実行し、それを生成してクライアントに送信する必要があります。 SDKのTokenAsync関数は、IDトークンのみを生成します。アクセストークンではありません。

しかし、数日前にこれを基にしたソリューションを実装したのは、Admin SDKで生成されたカスタムトークンの有効期限が3600秒(1時間)に制限されていることだけです。これはかなり短く、最終的にはクラッシュに苦しんでいたり、アプリを終了してしまったユーザーを自動ログインさせるのに本当に役に立たなかった。

私はカスタムトークンをよりカスタマイズできるようになり、より長い有効期限やその他のものを設定できるようになりました。

0

これは古い質問ですが、Firebaseは実際にセッション間でユーザーを格納します。あなたは「Remember Me」がデフォルトで組み込まれていると言うことができます。リスナはFirebaseAuth.DefaultInstance.StateChangedにアタッチされていなければなりません。初期化が完了すると自動的に呼び出されます。 StateChangedが呼び出され、FirebaseAuth.DefaultInstance.CurrentUser != nullにログインすると、ログインして自動的にログイン画面をスキップできます。

これはベストプラクティスかどうかわかりませんが、ログイン画面を表示する前に10秒間プロジェクトの先頭に「ログイン...」というプロンプトが表示されます。明らかに、FirebaseAuth.DefaultInstance.StateChangedがログインを促す場合、10秒は早く終了します(通常は1秒以内)。

関連する問題