Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

カスタム認証システムを使用してJavaScriptでFirebaseで認証する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。
ユーザーが正常にサインインしたときにカスタム署名済みトークンを生成するように認証サーバーを変更することで、Firebase認証をカスタム認証システムと統合できます。アプリはこのトークンを受け取り、Firebaseでの認証に使用します。

あなたが始める前に

  1. JavaScriptプロジェクトにFirebaseを追加します
  2. プロジェクトのサーバーキーを取得します。
    1. プロジェクトの設定で[サービスアカウント]ページに移動します。
    2. [サービスアカウント]ページの[ FirebaseAdminSDK ]セクションの下部にある[新しい秘密鍵の生成]をクリックします。
    3. 新しいサービスアカウントの公開鍵と秘密鍵のペアは、コンピューターに自動的に保存されます。このファイルを認証サーバーにコピーします。

Firebaseで認証する

  1. ユーザーがアプリにサインインするときは、サインイン資格情報(ユーザー名やパスワードなど)を認証サーバーに送信します。サーバーは資格情報を確認し、有効な場合はカスタムトークンを返します。
  2. 認証サーバーからカスタムトークンを受け取ったら、それをsignInWithCustomTokenに渡して、ユーザーにサインインします。

    Web version 9

    import { getAuth, signInWithCustomToken } from "firebase/auth";
    
    const auth = getAuth();
    signInWithCustomToken(auth, token)
      .then((userCredential) => {
        // Signed in
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });

    Web version 8

    firebase.auth().signInWithCustomToken(token)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });

次のステップ

ユーザーが初めてサインインすると、新しいユーザーアカウントが作成され、ユーザーがサインインした資格情報(つまり、ユーザー名とパスワード、電話番号、または認証プロバイダー情報)にリンクされます。この新しいアカウントはFirebaseプロジェクトの一部として保存され、ユーザーのログイン方法に関係なく、プロジェクト内のすべてのアプリでユーザーを識別するために使用できます。

  • アプリで、ユーザーの認証ステータスを知るための推奨される方法は、 Authオブジェクトにオブザーバーを設定することです。次に、 Userオブジェクトからユーザーの基本的なプロファイル情報を取得できます。ユーザーの管理を参照してください。

  • FirebaseRealtimeデータベースとCloudStorageのセキュリティルールでは、ログインしたユーザーの一意のユーザーIDをauth変数から取得し、それを使用してユーザーがアクセスできるデータを制御できます。

認証プロバイダーのクレデンシャルを既存のユーザーアカウントにリンクすることで、ユーザーが複数の認証プロバイダーを使用してアプリにサインインできるようにすることができます。

ユーザーをサインアウトするには、 signOutを呼び出します。

Web version 9

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth).then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});

Web version 8

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});