現在、ユーザー登録ができるスマホアプリを作成しております。
Unity × Firebase Authenticationで実装しており、
ユーザー作成、ユーザーサインインまでは、できました。
ただ、一度アプリを停止したあと、立ち上げた場合で、
サインイン済みのユーザーは、ログイン状態で起動したいのですが
実装の方法は、どういった手法を使うのがよろしいのでしょうか?
Web系では、セッションやクッキーで情報が多いのですが
情報が少ないため、調べた限り分かりませんでした。
firebase公式HPで
ユーザーがアプリにログインしたら、そのユーザーのログイン認証情報(たとえば、ユーザー名とパスワード)を認証サーバーに送信します。
サーバーにより認証情報が確認され、認証情報が有効な場合は、カスタム トークンが返されます。
認証サーバーからカスタム トークンを受け取ったら、Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync に渡してユーザーのログインを行います。
となっているので、ユーザー管理が楽なfirebaseでもログイン継続には、認証サーバー設計が必須なのかなとは感じています。
(PythonやAWS、GCPが少し使えるのでその範囲でできれば有難いです)
一応試験的に、サインイン時に発生するトークンを取得してjsonで保存し、
再起動後に読み込み、以下のコードでできるか試したのですが、
それだけでは、"task.IsFaulted"が返って来てしまいサインインできませんでした。
ただ、トークンを送信するだけでは、サインインできない仕様なのかも疑問です。。
(この方法は、セキュリティ的に恐らく良くないのではとは思ってますが..)
参考https://firebase.google.com/docs/auth/unity/custom-auth?authuser=0
C#
1 JSONObject json = new JSONObject(data); 2 string custom_token = json.GetField("idToken").str; 3 4 auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => { 5 if (task.IsCanceled) 6 { 7 Debug.LogError("SignInWithCustomTokenAsync was canceled."); 8 return; 9 } 10 if (task.IsFaulted) 11 { 12 Debug.LogError("SignInWithCustomTokenAsync encountered an error: " + task.Exception); 13 return; 14 } 15 16 Firebase.Auth.FirebaseUser newUser = task.Result; 17 Debug.LogFormat("User signed in successfully: {0} ({1})", 18 newUser.DisplayName, newUser.UserId); 19 });
一応開発環境ですが
Unity 2018 1.1f1
android (将来的にiosも視野に) 使用環境想定
windwos10
になります。
どなたかお分かりの方、いらっしゃいましたら
ご教授よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー