開始在 Web 應用程式中使用 App Check 和 reCAPTCHA v3

本頁面向您展示如何使用內建的 reCAPTCHA v3 提供者在 Web 應用程式中啟用應用程式檢查。啟用應用程式檢查後,您可以協助確保只有您的應用程式可以存取專案的 Firebase 資源。請參閱此功能的概述

請注意,reCAPTCHA v3 對使用者不可見。 reCAPTCHA v3 提供者不會要求用戶隨時解決挑戰。請參閱reCAPTCHA v3 文件

如果您想將 App Check 與您自己的自訂提供者一起使用,請參閱實作自訂 App Check 提供者

1. 設定您的 Firebase 項目

  1. 如果您尚未將Firebase 新增至您的 JavaScript 項目,請將其新增至您的 JavaScript 專案

  2. 註冊您的 reCAPTCHA v3 網站並取得您的 reCAPTCHA v3 網站金鑰和秘密金鑰。

  3. 在 Firebase 控制台的App Check 部分中,透過 reCAPTCHA 提供者註冊您的應用程式以使用 App Check。您需要提供在上一步中獲得的密鑰

    您通常需要註冊專案的所有應用,因為一旦為 Firebase 產品啟用強制執行,只有註冊的應用程式才能存取該產品的後端資源。

  4. 可選:在應用程式註冊設定中,為提供者頒發的應用程式檢查令牌設定自訂生存時間 (TTL)。您可以將 TTL 設定為 30 分鐘到 7 天之間的任意值。更改此值時,請注意以下權衡:

    • 安全性:較短的 TTL 提供更強的安全性,因為它減少了攻擊者濫用洩漏或攔截的令牌的視窗。
    • 效能:較短的 TTL 意味著您的應用程式將更頻繁地執行證明。由於應用程式證明過程會在每次執行時增加網路請求的延遲,因此較短的 TTL 可能會影響應用程式的效能。
    • 配額和成本:較短的 TTL 和頻繁的重新認證會更快地耗盡您的配額,對於付費服務,可能會花費更多。請參閱配額和限制

    對於大多數應用程式來說,預設 TTL 1 天是合理的。請注意,App Check 庫會在大約 TTL 持續時間的一半時刷新令牌。

2. 將 App Check 庫加入您的應用程式中

如果您尚未將 Firebase 新增至您的網路應用程式中,請將其新增至您的網路應用程式。請務必導入 App Check 庫。

3. 初始化應用檢查

在存取任何 Firebase 服務之前,將以下初始化程式碼新增至您的應用程式。您需要將您在 reCAPTCHA 控制台中建立的 reCAPTCHA網站金鑰傳遞給activate()

Web modular API

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

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

// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
const appCheck = initializeAppCheck(app, {
  provider: new ReCaptchaV3Provider('abcdefghijklmnopqrstuvwxy-1234567890abcd'),

  // 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();
// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
appCheck.activate(
  'abcdefghijklmnopqrstuvwxy-1234567890abcd',

  // 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 與偵錯提供者