【完全ガイド】Firebaseで作るログイン認証システムの実装方法

プログラミング

ユーザー管理や認証機能を自前で構築するのは、セキュリティやスケーラビリティの面で多くの課題があります。Firebase Authenticationを利用すれば、これらの課題を解決し、迅速に安全な認証システムを導入できます。本記事では、Firebase Authenticationを活用したログイン認証システムの構築方法を、実践的なコード例とともに解説します。 

Firebase Authenticationの概要

Firebase Authenticationは、Googleが提供する認証サービスで、以下の特徴があります。

多様な認証方法:メール/パスワード、電話番号、Google、Facebook、Twitterなどのソーシャルログインに対応。

簡単な統合:クライアントSDKやFirebaseUIを使用して、迅速に認証機能を組み込めます。

セキュリティ:Googleのインフラ上で動作し、高いセキュリティ基準を満たしています。  

詳細は公式ドキュメントをご参照ください。 

Firebaseプロジェクトの設定

ステップ1:Firebaseプロジェクトの作成

1. Firebaseコンソールにアクセスし、新しいプロジェクトを作成します。

2. プロジェクト名を入力し、必要に応じてGoogleアナリティクスを設定します。 

ステップ2:ウェブアプリの登録

1. プロジェクトのダッシュボードで「アプリを追加」からウェブアイコンを選択します。

2. アプリのニックネームを入力し、Firebase Hostingを使用するか選択します。

3. 表示されるFirebase SDKの設定情報を控えておきます。 

メールアドレスとパスワードによる認証の実装

ステップ1:認証方法の有効化

1. Firebaseコンソールの「Authentication」セクションに移動します。

2. 「ログイン方法」タブで「メール/パスワード」を有効にします。  

ステップ2:Firebase SDKの導入

プロジェクトにFirebase SDKを追加し、認証機能を初期化します。 

1
2
3
4
5
6
7
8
9
10
11
import { initializeApp } from "firebase/app";
import { getAuth, createUserWithEmailAndPassword, signInWithEmailAndPassword } from "firebase/auth";
 
const firebaseConfig = {
  apiKey: "YOUR_API_KEY",
  authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
  // 他の設定項目
};
 
const app = initializeApp(firebaseConfig);
const auth = getAuth(app);

ステップ3:ユーザー登録とログイン機能の実装

ユーザー登録とログインの関数を実装します。 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// ユーザー登録
createUserWithEmailAndPassword(auth, email, password)
  .then((userCredential) => {
    // 登録成功
    const user = userCredential.user;
  })
  .catch((error) => {
    // エラー処理
  });
 
// ログイン
signInWithEmailAndPassword(auth, email, password)
  .then((userCredential) => {
    // ログイン成功
    const user = userCredential.user;
  })
  .catch((error) => {
    // エラー処理
  });

ソーシャルログインの導入

ステップ1:認証プロバイダの有効化

Firebaseコンソールの「Authentication」セクションで、使用したいソーシャルログインプロバイダ(例:Google、Facebook)を有効にし、必要な設定を行います。 

ステップ2:ソーシャルログインの実装

例として、Googleログインの実装方法を示します。

1
2
3
4
5
6
7
8
9
10
11
12
import { GoogleAuthProvider, signInWithPopup } from "firebase/auth";
 
const provider = new GoogleAuthProvider();
 
signInWithPopup(auth, provider)
  .then((result) => {
    // ログイン成功
    const user = result.user;
  })
  .catch((error) => {
    // エラー処理
  });

セキュリティルールの設定

Firebaseでは、データベースやストレージへのアクセスを制御するために、セキュリティルールを設定できます。 

例えば、Firestoreで認証済みユーザーのみがデータを読み書きできるようにするルールは以下のようになります。

1
2
3
4
5
6
7
8
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

詳細なセキュリティルールの設定方法は、公式ドキュメントをご参照ください。

まとめ

Firebase Authenticationを利用することで、セキュアでスケーラブルな認証システムを迅速に構築できます。メール/パスワード認証やソーシャルログインの導入も容易であり、セキュリティルールを適切に設定することで、データの保護も強化できます。本記事を参考に、Firebase Authenticationを活用した認証機能の実装に挑戦してみてください

タイトルとURLをコピーしました