アプリで最初はデモとして匿名会員を使いつつ、使い込んでいく内に他のデバイスでも情報を共有したり、正式な会員登録を行うステップに進むことがあります。その際の手順について紹介します。
フローについて
まず現在は匿名会員でログインしている状態とします。そのアカウントにパスワードを結びつけるフローになります。
await ncmb.User.loginAsAnonymous();
匿名会員を使うためには管理画面のアプリ設定で匿名設定を有効にしなければなりません。
メールアドレス認証を有効にする
NCMBではパスワード変更APIが提供されていないので、必ずメール経由になります。そのため、管理画面で必ずメールアドレス認証を有効にしてください。
メールアドレス宛にパスワード変更メールを送信する
そしてログインしている状態でパスワードリセットを実行します。
const email = 'example@example.com'; await user.set('mailAddress', email).requestPasswordReset();
メールに従って処理する
そうすると指定したメールアドレス宛にメールが来ます。そこには仮パスワードが記載されています。
パスワード変更画面で仮パスワードを指定し、新しいパスワードを指定します。
ログインする
パスワードを変更したら、そのメールアドレスとパスワードでログインできます。
const email = 'example@example.com'; const password = 'YOUR_PASSWORD'; await ncmb.User.loginWithMailAddress(email, password);
IDとパスワードログインにする
メールアドレスが設定できていれば、後は userName を変更するだけでID/パスワード認証に変更できます。その際には管理画面でID/パスワード認証を許可してください。
コードは以下のようになります。
const userName = 'YOUR_USER_NAME'; const password = 'YOUR_PASSWORD'; await ncmb.User.login(email, password);
まとめ
ユーザ向けに正式登録後もデータを引き継ぎたい時には上記の処理を参考にしてください。処理は決して難しくありませんが、管理画面の設定を忘れずに行ってください。