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

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

匿名会員からパスワード認証に切り替える方法【JavaScript編】

f:id:mbaasdevrel:20190128125642p:plain

アプリで最初はデモとして匿名会員を使いつつ、使い込んでいく内に他のデバイスでも情報を共有したり、正式な会員登録を行うステップに進むことがあります。その際の手順について紹介します。

フローについて

まず現在は匿名会員でログインしている状態とします。そのアカウントにパスワードを結びつけるフローになります。

await ncmb.User.loginAsAnonymous();

匿名会員を使うためには管理画面のアプリ設定で匿名設定を有効にしなければなりません。

f:id:mbaasdevrel:20190128125618p:plain

メールアドレス認証を有効にする

NCMBではパスワード変更APIが提供されていないので、必ずメール経由になります。そのため、管理画面で必ずメールアドレス認証を有効にしてください。

f:id:mbaasdevrel:20190128125642p:plain

メールアドレス宛にパスワード変更メールを送信する

そしてログインしている状態でパスワードリセットを実行します。

const email = 'example@example.com';
await user.set('mailAddress', email).requestPasswordReset();

メールに従って処理する

そうすると指定したメールアドレス宛にメールが来ます。そこには仮パスワードが記載されています。

f:id:mbaasdevrel:20190128125705p:plain

パスワード変更画面で仮パスワードを指定し、新しいパスワードを指定します。

f:id:mbaasdevrel:20190128125716p:plain

ログインする

パスワードを変更したら、そのメールアドレスとパスワードでログインできます。

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);

まとめ

ユーザ向けに正式登録後もデータを引き継ぎたい時には上記の処理を参考にしてください。処理は決して難しくありませんが、管理画面の設定を忘れずに行ってください。

中津川 篤司

中津川 篤司

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