本頁說明如何使用 預設供應商:Android 上的 Play Integrity、Apple 平台上的裝置檢查 網頁版 reCAPTCHA v3。啟用 App Check 之後,您就能確保 只有您的應用程式可以存取專案的 Firebase 資源。查看 這項功能的總覽。
1. 設定 Firebase 專案
安裝並初始化 FlutterFire (如果尚未這麼做的話) 已完成其他驗證步驟
在以下位置註冊應用程式,以便透過 Play Integrity、裝置檢查和 reCAPTCHA 供應商使用 App Check: 專案設定 >App Check 專區。
通常您需要註冊專案的所有應用程式,因為 允許對 Firebase 產品強制執行;只有已註冊的應用程式可以 存取產品的後端資源
選用:在應用程式註冊設定中自訂存留時間 (存留時間),適用於供應商核發的 App Check 權杖。您可以設定存留時間 設為 30 分鐘至 7 天之間的任何值。變更這個值時, 瞭解下列優缺點:
- 安全性:較短的存留時間可提高安全性,因為這麼做能減少 出現安全漏洞,可能導致權杖遭到洩漏或攔截 攻擊者
- 效能:縮短存留時間 (TTL) 越短,應用程式就越能執行認證 經常更新因為應用程式認證程序會增加網路延遲時間 因此短暫的存留時間 (TTL) 可能會影響效能
- 配額與費用:縮短存留時間 (TTL) 和頻繁的重新認證作業,皆會破壞您的 配額更快,而如果是付費服務,費用可能更高。 請參閱配額與上限。
預設存留時間 對大多數應用程式而言都是合理的做法。請注意,系統會重新整理 App Check 程式庫 權杖的 75 倍。
2. 在應用程式中加入 App Check 程式庫
在 Flutter 專案的根目錄中執行下列指令,以安裝外掛程式:
flutter pub add firebase_app_check
完成後,請重新建構 Flutter 應用程式:
flutter run
3. 初始化 App Check
將下列初始化程式碼新增至應用程式,讓應用程式先執行
使用 Storage 等任何 Firebase 服務,但在呼叫
Firebase.initializeApp()
;
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate(
// You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
// argument for `webProvider`
webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
// Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Safety Net provider
// 3. Play Integrity provider
androidProvider: AndroidProvider.debug,
// Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Device Check provider
// 3. App Attest provider
// 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
appleProvider: AppleProvider.appAttest,
);
runApp(App());
}
後續步驟
在應用程式中安裝 App Check 程式庫後,即可開始發布 為使用者提供了最新的應用程式
更新後的用戶端應用程式會開始傳送 App Check 權杖和 但 Firebase 產品不需要權杖 您必須在 Firebase 控制台。
監控指標並啟用強制執行功能
不過,啟用強制執行功能之前,請先確認這項操作不會 幹擾現有的合法使用者另一方面,如果您發現 如果您對應用程式資源都很可疑,不妨啟用強制執行功能
為做出這項決定,您可以查看 App Check 指標: 您使用的服務:
- 監控 App Check 要求指標: 即時資料庫、Cloud Firestore、Cloud Storage 和驗證。
- 監控 Cloud Functions 的 App Check 要求指標。
啟用強制執行 App Check
瞭解 App Check 對使用者的影響後,您就能做好準備 下一步,您可以啟用 App Check 強制執行功能:
- 啟用 App Check 強制執行功能: 即時資料庫、Cloud Firestore、Cloud Storage 和驗證。
- 啟用 Cloud Functions 的 App Check 強制執行功能。
在偵錯環境中使用 App Check
只要在應用程式註冊 App Check 後, 應用程式所在的環境中,App Check 通常不會歸類為有效應用程式。 例如開發期間的模擬器,或從持續整合 (CI) 擷取而來 您就能為應用程式建立偵錯版本,該應用程式會使用 App Check 偵錯供應器,而非真正的認證提供者。
請參閱「在 Flutter 應用程式中搭配使用 App Check」。