開始在 Web 應用程式上使用自訂提供者的 App Check

此頁面向您展示如何使用自定義 App Check 提供程序在 Web 應用程序中啟用 App Check。啟用應用檢查後,您可以幫助確保只有您的應用可以訪問項目的 Firebase 資源。

如果您想將 App Check 與內置提供商之一一起使用,請參閱App Check 與 reCAPTCHA Enterprise的文檔。

在你開始之前

1. 將 App Check 庫添加到您的應用程序中

如果您尚未將 Firebase 添加到您的網絡應用中,請將其添加到您的網絡應用中。請務必導入 App Check 庫。

2. 創建 App Check 提供程序對象

為您的自定義提供程序創建 App Check 提供程序對象。該對象必須具有getToken()方法,該方法收集您的自定義 App Check 提供程序所需的任何信息作為真實性證明,並將其發送到您的令牌獲取服務以換取 App Check 令牌。 App Check SDK 處理令牌緩存,因此始終在getToken()的實現中獲取新令牌。

Web modular API

import { CustomProvider } from "firebase/app-check";

const appCheckCustomProvider = new CustomProvider({
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
});

Web namespaced API

const appCheckCustomProvider = {
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
};

3. 初始化應用檢查

在訪問任何 Firebase 服務之前,將以下初始化代碼添加到您的應用程序:

Web modular API

import { initializeApp } from "firebase/app";
import { initializeAppCheck } from "firebase/app-check";

const app = initializeApp({
  // Your firebase configuration object
});

const appCheck = initializeAppCheck(app, {
  provider: appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true    
});

Web namespaced API

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
appCheck.activate(
  appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

下一步

將 App Check 庫安裝到您的應用程序中後,進行部署。

更新後的客戶端應用程序將開始隨其向Firebase 發出的每個請求一起發送App Check 令牌,但在您在Firebase 控制台的App Check 部分中啟用強制執行之前,Firebase 產品不會要求令牌有效。

監控指標並啟用執行

但是,在啟用強制執行之前,您應該確保這樣做不會干擾您現有的合法用戶。另一方面,如果您發現應用程序資源的可疑使用,您可能希望盡快啟用強制執行。

為了幫助做出此決定,您可以查看您使用的服務的 App Check 指標:

啟用應用程序檢查強制執行

當您了解 App Check 將如何影響您的用戶並且準備好繼續操作時,您可以啟用 App Check 強制執行:

在調試環境中使用 App Check

如果在為App Check 註冊您的應用程序後,您希望在App Check 通常不會歸類為有效的環境中運行您的應用程序,例如在開發期間本地運行,或者在持續集成(CI) 環境中運行,您可以創建應用程序的調試版本,使用 App Check 調試提供程序而不是真正的證明提供程序。

請參閱在 Web 應用程序中使用 App Check 與調試提供程序

,

此頁面向您展示如何使用自定義 App Check 提供程序在 Web 應用程序中啟用 App Check。啟用應用檢查後,您可以幫助確保只有您的應用可以訪問項目的 Firebase 資源。

如果您想將 App Check 與內置提供商之一一起使用,請參閱App Check 與 reCAPTCHA Enterprise的文檔。

在你開始之前

1. 將 App Check 庫添加到您的應用程序中

如果您尚未將 Firebase 添加到您的網絡應用中,請將其添加到您的網絡應用中。請務必導入 App Check 庫。

2. 創建 App Check 提供程序對象

為您的自定義提供程序創建 App Check 提供程序對象。該對象必須具有getToken()方法,該方法收集您的自定義 App Check 提供程序所需的任何信息作為真實性證明,並將其發送到您的令牌獲取服務以換取 App Check 令牌。 App Check SDK 處理令牌緩存,因此始終在getToken()的實現中獲取新令牌。

Web modular API

import { CustomProvider } from "firebase/app-check";

const appCheckCustomProvider = new CustomProvider({
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
});

Web namespaced API

const appCheckCustomProvider = {
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
};

3. 初始化應用檢查

在訪問任何 Firebase 服務之前,將以下初始化代碼添加到您的應用程序:

Web modular API

import { initializeApp } from "firebase/app";
import { initializeAppCheck } from "firebase/app-check";

const app = initializeApp({
  // Your firebase configuration object
});

const appCheck = initializeAppCheck(app, {
  provider: appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true    
});

Web namespaced API

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
appCheck.activate(
  appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

下一步

將 App Check 庫安裝到您的應用程序中後,進行部署。

更新後的客戶端應用程序將開始隨其向Firebase 發出的每個請求一起發送App Check 令牌,但在您在Firebase 控制台的App Check 部分中啟用強制執行之前,Firebase 產品不會要求令牌有效。

監控指標並啟用執行

但是,在啟用強制執行之前,您應該確保這樣做不會干擾您現有的合法用戶。另一方面,如果您發現應用程序資源的可疑使用,您可能希望盡快啟用強制執行。

為了幫助做出此決定,您可以查看您使用的服務的 App Check 指標:

啟用應用程序檢查強制執行

當您了解 App Check 將如何影響您的用戶並且準備好繼續操作後,您可以啟用 App Check 強制執行:

在調試環境中使用 App Check

如果在為App Check 註冊您的應用程序後,您希望在App Check 通常不會歸類為有效的環境中運行您的應用程序,例如在開發期間本地運行,或者在持續集成(CI) 環境中運行,您可以創建應用程序的調試版本,使用 App Check 調試提供程序而不是真正的證明提供程序。

請參閱在 Web 應用程序中使用 App Check 與調試提供程序