NIFCLOUD-mbaas / UserCommunity

ニフクラ mobile backend ユーザーコミュニティ
https://mbaas.nifcloud.com/
81 stars 18 forks source link

Unityでの匿名認証を継続して使い続ける方法 #1318

Closed akiaki2020 closed 1 year ago

akiaki2020 commented 1 year ago

現在Unityで開発をしており 下記を参考にして https://mbaas.nifcloud.com/doc/current/user/authorize_anonymous_unity.html 匿名認証は実装しました。

実装したい形として 匿名認証したらそのUserNameを使用し、次回アプリ起動時にそのUserNameでログインできるようしたいです。 現状 LoginWithAnonymousAsyncを実行しても、NCMBUserにPasswordが払い出されませんでした。 下記URLのように https://blog.mbaas.nifcloud.com/entry/2018/10/02/191354 継続して匿名認証した会員を使い続ける方法はあるのでしょうか?

goofmint commented 1 year ago

残念ながらUnity SDKでは現状、UUIDを都度生成しているようです。そのため、有効期限を超えた継続はできません。

https://github.com/NIFCLOUD-mbaas/ncmb_unity/blob/2f9e73b4a613ff82dcb57235ff9e01910becc4c9/ncmb_unity/Assets/NCMB/Script/NCMBUser.cs#L718

ただ、匿名認証したデータはアプリ内に保存されるので、最長7日間まで持続できます。また、匿名認証はパスワードが払い出される訳ではありません。UUIDを使った認証が可能になるだけです。

認証しているかどうかは下記コードで分かります。

// カレントユーザー情報の取得
NCMBUser currentUser = NCMBUser.CurrentUser;
if (currentUser != null) {
    UnityEngine.Debug.Log ("ログイン中のユーザー: " + currentUser.UserName);
} else {
    // この時に匿名認証を実行する
}
akiaki2020 commented 1 year ago

残念ながらUnity SDKでは現状、UUIDを都度生成しているようです。そのため、有効期限を超えた継続はできません。

https://github.com/NIFCLOUD-mbaas/ncmb_unity/blob/2f9e73b4a613ff82dcb57235ff9e01910becc4c9/ncmb_unity/Assets/NCMB/Script/NCMBUser.cs#L718

ただ、匿名認証したデータはアプリ内に保存されるので、最長7日間まで持続できます。また、匿名認証はパスワードが払い出される訳ではありません。UUIDを使った認証が可能になるだけです。

認証しているかどうかは下記コードで分かります。

// カレントユーザー情報の取得
NCMBUser currentUser = NCMBUser.CurrentUser;
if (currentUser != null) {
    UnityEngine.Debug.Log ("ログイン中のユーザー: " + currentUser.UserName);
} else {
    // この時に匿名認証を実行する
}

回答ありがとうございます。 アプリ内に保存されている挙動も確認できました。 パスワードの認識の修正もありがとうございます。