アプリで最初はデモとして匿名会員を使いつつ、使い込んでいく内に他のデバイスでも情報を共有したり、正式な会員登録を行うステップに進むことがあります。その際の手順について紹介します。
- フローについて
- メールアドレス認証を有効にする
- メールアドレスを設定する
- メールアドレス宛にパスワード変更メールを送信する
- メールに従って処理する
- ログインする
- IDとパスワードログインにする
- まとめ
フローについて
まず現在は匿名会員でログインしている状態とします。そのアカウントにパスワードを結びつけるフローになります。
NCMBAnonymousUtils.logIn({(user, error) in if (error != nil) { print(error); } else { self.lbluserName.text = user?.userName } });
匿名認証機能は管理画面の設定で有効にします。
メールアドレス認証を有効にする
NCMBではパスワード変更APIが提供されていないので、必ずメール経由になります。そのため、管理画面で必ずメールアドレス認証を有効にしてください。
メールアドレスを設定する
次にメールアドレスを設定します。この時、一度メールアドレス確認メールが送信されます。
let email = txtEmail.text let user = NCMBUser.current() user?.setObject(email, forKey: "mailAddress") user?.saveInBackground({(error) in if (error != nil) { print(error) } else { // 処理成功 } })
メールアドレス宛にパスワード変更メールを送信する
そしてログインしている状態でパスワードリセットを実行します。
NCMBUser.requestPasswordResetForEmail(inBackground: email, block: {(error) in if (error != nil) { print(error); } else { print("メール送信完了") } })
メールに従って処理する
そうすると指定したメールアドレス宛にメールが来ます。そこには仮パスワードが記載されています。パスワード変更画面で仮パスワードを指定し、新しいパスワードを指定します。
ログインする
パスワードを変更したら、そのメールアドレスとパスワードでログインできます。
NCMBUser.logInWithMailAddress(inBackground: txtEmail.text, password: txtPassword.text, block: {(user, error) in if (error != nil) { print(error) } else { self.lbluserName.text = user?.userName } })
IDとパスワードログインにする
メールアドレスが設定できていれば、後は userName を変更するだけでID/パスワード認証に変更できます。その際には管理画面でID/パスワード認証を許可してください。
コードは以下のようになります。
NCMBUser.logInWithUsername(inBackground: txtUserName.text, password: txtPassword.text, block: {(user, error) in if (error != nil) { print(error) } else { self.lbluserName.text = user?.userName } })
まとめ
ユーザ向けに正式登録後もデータを引き継ぎたい時には上記の処理を参考にしてください。処理は決して難しくありませんが、管理画面の設定を忘れずに行ってください。