会員認証設定について
ユーザー登録のときに、メールアドレスを登録したのに、どこにも使ってないぞと気付かれた方はスルドイです。
会員認証設定のメールによる会員認証の許可は、デフォルトでは「許可しない」になっています。ですから、ユーザー登録するとすぐに本登録されます。
この設定を「許可する」にすると、メールによる本人確認が自動的に行われます。ユーザー登録をすると、入力したメールアドレスにメールが送信されます。そして、そのメールに記載されたリンクをたどると、ユーザーとして本登録されます。
なりすましやいたずらを防ぐメールによる本人確認がチェックボックスの設定一つでできるのは便利ですね。「許可する」に設定して試してみてください。
signUpInBackground()のエラーコードを調べる
ログイン・ログアウト処理やユーザー登録処理がこのように簡単に作成できるのは、開発者としてとてもうれしいのですが、NCMBがどのようなチェックをしているのかを知っておかなければなりません。そのために、非同期でユーザー登録をするsignUpInBackgroundメソッドで例外を発生させて、メッセージを確認していきます。
例外はNCMBExceptionオブジェクトのgetMessageメソッドで調べることがことができるので、「リスト6 UserAddActivity.java」の(3)でコンソール出力させて確認します。
たとえば、同じユーザー名のユーザーを登録しようとすると、
{"code":"E409001","error":"userName is duplication."}
というエラーが出力されました。
パスワードを入力しないときは、
{"code":"E400003","error":"userName or password is empty."}
というエラーが出力されました。
それから、極端な例として試してみたのですが、ユーザー名が1文字、パスワードが1文字でユーザー登録してみたら、エラーにならず登録されましたので、アプリ側で文字数のチェック処理をした方がよいように思います。
最後に
今回はログイン・ログアウト、そしてユーザー登録処理をみてきました。NCMBのAPIは非同期処理で呼び出すことが基本です。また、ユーザー登録時に、ユーザー名やパスワードに桁数や文字種の制限を設けたいときは、独自にルールをプログラミングする必要があるようです。
次回はデータオブジェクトの保存に進みます。