Swift3でのNCMBの使い方を解説します。今回はメールアドレス認証の使い方です。
メールアドレスの確認から
メールアドレス認証を行う場合、まずメールアドレスの存在を確認します。そのため、ユーザにはメールアドレスを入力してもらい、mBaaSからメールを送信します。
コードは簡単で、 NCMBUser.requestAuthenticationMail
を実行するだけです。動機的に処理され、エラーがあれば引数が更新されます。
var error : NSError? = nil NCMBUser.requestAuthenticationMail(txtEmail.text, error: &error) if (error != nil) { print(error ?? "") }
パスワードを登録する
そうすると指定したメールアドレス宛にメールが送られてきます。デフォルトのタイトルは「ユーザー登録につきまして(アプリ名: AAA)」となっています(AAAは登録したアプリ名)。このタイトルは管理画面で自由に変更できます。
メールに記載されたURLを開くとパスワード登録の画面が表示されます。URLなので、これはWebブラウザで開くものになります。この画面も管理画面で自由に変更できます。
ログインする
パスワードを登録したら、メールアドレスとパスワードでログインできるようになります。この時のコードは以下の通りです。
NCMBUser.logInWithMailAddress(inBackground: txtEmail.text, password: txtPassword.text, block: {(user, error) in if (error != nil) { print(error) } else { print("ログイン成功") print(NCMBUser.current()) } })
この処理は非同期で、ログインしたユーザとエラーオブジェクトが返ってきます。ログインできていればユーザオブジェクトと NCMBUser.current()
で取得されるユーザデータは同じものになります。なお、ユーザ名は任意の文字が自動的に入力されます。
{ "updateDate" : { "__type" : "Date", "iso" : "2018-11-23T05:17:32.525Z" }, "sessionToken" : "n4E...lov", "authData" : null, "userName" : "70o2rYvT0P", "mailAddress" : "atsushi@moongift.jp", "objectId" : "rAxttRN2uyfQgxxP", "acl" : { }, "createDate" : { "__type" : "Date", "iso" : "2018-11-23T05:17:32.262Z" }, "mailAddressConfirm" : true }
まとめ
NCMBではパスワード変更のAPIがないため、パスワード変更には必ずメールアドレスの登録が必要になります。つまりメールアドレスが登録されている状態はかなり重要です。ソーシャル認証であればパスワード管理は不要ですが、それ以外の認証の場合はメールアドレスの登録方法を覚えておいてください。