Firebase Authentication パスワード再設定サンプル
本項では、Firebase Authenticationのパスワード再設定を行うサンプルアプリを解説します。
サンプルアプリの仕様は次の通りです。
メールアドレスを入力し、パスワード再設定メールを送信する
パスワード再設定メールには、パスワード再設定画面のリンクが記載されている(Firebaseの機能)
メール記載のリンクからパスワード再設定画面にアクセスし、パスワードの再設定を行う(Firebaseの機能)
メールアドレスと再設定したパスワードでアプリにログインする
ログイン状態を画面に表示する
ログアウトする
これらのうち、2と3はFirebaseの機能です。そのため、サンプルアプリでは1、4、5、6を実装します。 完成したアプリのイメージは次のようになります。

本ドキュメントで扱うコードのオリジナルプロジェクトは、GitHubリポジトリにて公開しています。
Authetication初期化
Authenticationを使用するには、まずFirebaseのSDKをインポートし、Firebaseプロジェクトの設定を行います。 ウェブアプリの設定情報には、Firebaseコンソールから取得した設定情報を使用します。ウェブアプリの登録と設定情報の取得手順は、こちらを確認してください。
変数auth の初期化は、iOS端末の場合、デフォルトのgetAuth(app) ではエラーになるため、次のように初期化します。
パスワード再設定メール送信
下記のコードは「パスワード再設定メールを送信」ボタンがタップされた時に実行されます。
Authenticationでは sendPasswordResetEmail 関数にメールアドレスを指定してパスワード再設定メールを送信します。
次のような本文でメールがFirebaseから送信されます。
メールのリンクをクリックすると次のような画面が表示され、パスワードの再設定ができます。

ログイン
パスワード再設定ができたら、ログインできるか確認します。
下記のコードは「ログイン」ボタンがタップされた時に実行されます。 AuthenticationのsignInWithEmailAndPassword 関数にメールアドレス、パスワードを指定して実行します。
ログイン状態の反映
ログインに成功した時の画面の表示を変える処理を解説します。
Authenticationの onAuthStateChanged 関数は、ログイン状態に変更があった場合に実行されるイベントハンドラです。 サンプルアプリではrenderLoginStatus 関数を実行してログイン状態を画面に反映させています。
ログアウト
最後に、ログアウトする処理を解説します。
下記のコードは「ログアウト」ボタンがタップされた時に実行されます。 Authethentication のsignOut 関数を実行します。 ログアウトに成功すると前述のonAuthStateChanged 関数が実行され、画面の表示が未ログイン状態になります。
エミュレーターを利用する
Firebaseのクラウド環境に接続して移行を行う前に、ローカル環境でFirebaseのエミュレーターを稼働させてデータの移行を検証できます。
Firebaseのエミュレーターを起動する。
www/app.jsの下記のコメントアウトを外してください。
下記のコマンドを実行すると、ローカル環境のブラウザで動作を確認できます。
エミュレーターのGUIには次のURLでアクセスします。

エミュレーター利用時のパスワード再設定メールについて
エミュレーターを利用すると、パスワード再設定メールは送信されません。 その代わり、エミュレーターGUIの「Logs」タブにリンクがURLが表示されます。 URLの「NEW_PASSWORD_HERE」の部分を新しいパスワードに置き換えて、ブラウザからアクセスしてください。パスワードが更新されます。

最終更新
役に立ちましたか?