本頁面向您展示如何使用內置的 reCAPTCHA v3 提供程序在 Web 應用程序中啟用應用程序檢查。啟用應用檢查後,您可以幫助確保只有您的應用可以訪問項目的 Firebase 資源。請參閱此功能的概述。
您應該使用 reCAPTCHA Enterprise 進行新集成,我們強烈建議使用 reCAPTCHA v3 的應用程序開發人員盡可能進行升級。
要了解 reCAPTCHA v3 和 reCAPTCHA Enterprise 之間的差異,請參閱功能比較。
請注意,reCAPTCHA v3 對用戶不可見。 reCAPTCHA v3 提供商不會要求用戶隨時解決挑戰。請參閱reCAPTCHA v3 文檔。
如果您想將 App Check 與您自己的自定義提供程序一起使用,請參閱實施自定義 App Check 提供程序。
1. 設置您的 Firebase 項目
註冊您的 reCAPTCHA v3 站點並獲取您的 reCAPTCHA v3 站點密鑰和秘密密鑰。
在 Firebase 控制台的App Check 部分中,通過 reCAPTCHA 提供商註冊您的應用以使用 App Check。您需要提供在上一步中獲得的密鑰。
您通常需要註冊項目的所有應用,因為一旦為 Firebase 產品啟用強制執行,只有註冊的應用才能訪問該產品的後端資源。
可選:在應用程序註冊設置中,為提供商頒發的應用程序檢查令牌設置自定義生存時間 (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 發出的每個請求,但Firebase 產品不會要求令牌有效,直到您在Firebase 控制台的應用程序檢查部分中啟用強制執行。
監控指標並啟用執行
但是,在啟用強制執行之前,您應該確保這樣做不會干擾您現有的合法用戶。另一方面,如果您發現應用程序資源的可疑使用,您可能希望盡快啟用強制執行。
為了幫助做出此決定,您可以查看您使用的服務的 App Check 指標:
啟用應用程序檢查強制執行
當您了解 App Check 將如何影響您的用戶並且準備好繼續操作後,您可以啟用 App Check 強制執行:
- 為實時數據庫、Cloud Firestore、雲存儲和身份驗證(測試版)啟用應用程序檢查強制執行。
- 為 Cloud Functions 啟用應用程序檢查強制執行。
在調試環境中使用 App Check
如果在為App Check 註冊您的應用程序後,您希望在App Check 通常不會歸類為有效的環境中運行您的應用程序,例如在開發期間本地運行,或者在持續集成(CI) 環境中運行,您可以創建應用程序的調試版本,使用 App Check 調試提供程序而不是真正的證明提供程序。
請參閱在 Web 應用程序中使用 App Check 與調試提供程序。