FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

Swiftでメールアドレス認証する

Swift3でのNCMBの使い方を解説します。今回はメールアドレス認証の使い方です。

メールアドレスの確認から

メールアドレス認証を行う場合、まずメールアドレスの存在を確認します。そのため、ユーザにはメールアドレスを入力してもらい、mBaaSからメールを送信します。

f:id:mbaasdevrel:20181123151817p:plain

コードは簡単で、 NCMBUser.requestAuthenticationMail を実行するだけです。動機的に処理され、エラーがあれば引数が更新されます。

var error : NSError? = nil
NCMBUser.requestAuthenticationMail(txtEmail.text, error: &error)
if (error != nil) {
  print(error ?? "")
}

パスワードを登録する

そうすると指定したメールアドレス宛にメールが送られてきます。デフォルトのタイトルは「ユーザー登録につきまして(アプリ名: AAA)」となっています(AAAは登録したアプリ名)。このタイトルは管理画面で自由に変更できます。

f:id:mbaasdevrel:20181123151840p:plain

メールに記載されたURLを開くとパスワード登録の画面が表示されます。URLなので、これはWebブラウザで開くものになります。この画面も管理画面で自由に変更できます。

f:id:mbaasdevrel:20181123151856p:plain

ログインする

パスワードを登録したら、メールアドレスとパスワードでログインできるようになります。この時のコードは以下の通りです。

NCMBUser.logInWithMailAddress(inBackground: txtEmail.text, password: txtPassword.text, block: {(user, error) in
  if (error != nil) {
    print(error)
  } else {
    print("ログイン成功")
    print(NCMBUser.current())
  }
})

f:id:mbaasdevrel:20181123151913p:plain

この処理は非同期で、ログインしたユーザとエラーオブジェクトが返ってきます。ログインできていればユーザオブジェクトと 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がないため、パスワード変更には必ずメールアドレスの登録が必要になります。つまりメールアドレスが登録されている状態はかなり重要です。ソーシャル認証であればパスワード管理は不要ですが、それ以外の認証の場合はメールアドレスの登録方法を覚えておいてください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。