2023 ソフトウェア設計及び演習用の班Wiki

23::gr01::ユーザ管理モジュール

戻る

概要

ユーザ管理機能を提供するモジュールです。

  • login.js
  • signup.js

利用したツール

Google Firebaseの Authentication機能
Google Firebaseは、モバイルアプリやWebアプリのためのバックエンドプラットフォームです。
Firebase Authentication を使用すると、ユーザーがアプリにログインする際に、メールアドレスとパスワードのログイン、Google ログインや Facebook ログインなどのフェデレーション ID プロバイダなど、複数のログイン方法を使用できるようになります。

ユーザ管理の実現方法

Firebase の CDN に保存されているauthライブラリを追加し、各メソッドをインポートした
  • "https://www.gstatic.com/firebasejs/9.22.0/firebase-auth.js"

インポートしたメソッドの説明

※本モジュールはインポートしたメソッドで完結しています。

initializeApp
アプリで Firebase を初期化して、Firebase アプリ オブジェクトを作成します。Firebase アプリはコンテナに似たオブジェクトで、一般的な構成を保存し、Firebase サービス全体で認証を共有します。コードで Firebase アプリ オブジェクトを初期化すると、Firebase サービスを追加して使用できるようになります。
getAuth
Firebase Authentication JS SDK を追加して Firebase Authentication を初期化します。
createUserWithEmailAndPassword
新規ユーザーがメールアドレスとパスワードを使用してアプリに登録できるフォームを作成し,ユーザーがフォームに入力したら、ユーザーが指定したメールアドレスとパスワードを検証し, それを引数としてcreateUserWithEmailAndPasswordメソッドに渡す。 ユーザ登録が成功すると自動的に作成したユーザーでログインされ、userCredential にユーザーオブジェクトが生成される。 userCredential.user で下記のようなユーザー情報が取得できる。
  • userCredential.user.accessToken //トークンを取得
  • userCredential.user.email //メールアドレスを取得
  • userCredential.user.uid. //ユーザーIDを取得
  • userCredential.user.metadata.createdAt //ユーザー作成日時を取得
  • userCredential.user.metadata.lastLoginAt //最終ログイン日時を取得
signInWithEmailAndPassword
既存ユーザーがメールアドレスとパスワードをフォームに入力し、入力したメールアドレス、パスワードを signInWithEmailAndPassword メソッドに渡す。ログインもユーザ登録と同様、ログインが成功すれば userCredential にログインしたユーザーのオブジェクトが入る。
onAuthStateChanged
ログインしているユーザーに関する情報が必要なアプリのページごとに、グローバル認証オブジェクトにオブザーバーをアタッチします。このオブザーバーは、ユーザーのログイン状態が変わるたびに呼び出されます。 onAuthStateChanged メソッドを使用してオブザーバーをアタッチします。ユーザーが正常にログインしたら、オブザーバーでユーザーに関する情報を取得できます。 ※よってこのメソッドはinitializeApp同様に各画面で実行してログイン状態を監視する。
signInWithPopup
フェデレーション ID プロバイダでログイン時、ポップアップ ウィンドウを表示する
GoogleAuthProvider、 FacebookAuthProvider、GithubAuthProvider
Google、Facebook、Github プロバイダ オブジェクトのインスタンスを作成します。 ポップアップ ウィンドウでログインを行う場合は、signInWithPopupメソッドにこのインスタンスを渡します。
updateProfile
ユーザーのプロフィールを更新するメソッドです。createUserWithEmailAndPasswordメソッド実行時の処理の中で呼び出し、ユーザオブジェクトのuser.displayNameにユーザ名を登録する


最終更新日:2023/06/30 17:16:27