アプリを利用しているユーザが手間をかけることなくACLを利用できる匿名会員機能。IDやパスワード、ソーシャルメディアとの結びつけも不要なので手軽に利用できます。
そんな匿名認証を利用している場合に、そのログインユーザが匿名会員かどうか判別したいこともあるでしょう。そんな方法を紹介します。
iOS(Objective-Cの場合)
Objective-CのSDKでは専用のメソッドを用意しています。
if ([NCMBAnonymousUtils isLinkedWithUser:[NCMBUser currentUser]]) { NSLog(@"匿名ユーザー"); } else { NSLog(@"匿名ユーザーではない"); }
Androidの場合
Androidも専用のメソッドがあります。
if (NCMBUser.getCurrentUser().isLinkedWith("anonymous")) { // 匿名ユーザー } else { // 匿名ユーザーではない }
Swiftの場合
Swiftの場合は下記のように判別を行います。
// ログイン状況の確認 if let user = NCMBUser.currentUser { // 匿名ユーザーでログインしているかの確認 if NCMBAnonymousUtils.isLinked(user: user) { print("匿名ユーザーです。") } else { print("匿名ユーザーではありません。") } } else { print("ログインしていません") }
JavaScriptの場合
JavaScriptでは専用のメソッドがありませんでした。そこで、次のようにして確認できます。
const user = ncmb.User.getCurrentUser(); const anonymouse = (authData = user.get('authData')) && authData['anonymous'] && !user.get('password'); console.log('anonymouse?', anonymouse); // trueなら匿名会員、falseなら一般会員
Unityの場合
Unityも専用のメソッドがあります。
if (NCMBUser.CurrentUser.IsLinkWith("anonymous")) { UnityEngine.Debug.Log("匿名ユーザー"); } else { UnityEngine.Debug.Log("匿名ユーザーでは無い"); }
まとめ
パスワードを確認しているのは、匿名認証の会員がパスワードを設定し、繰り返しログインできるようになったことを想定しています。この場合はもう匿名会員ではありません。
匿名会員は手軽に使えて、デバイスごとのデータ管理をセキュアにしてくれる機能です。ぜひアプリ開発に役立ててください。