開始在 C++ 應用程式中使用 App Check

此頁面向您展示如何使用默認提供程序在 C++ 應用程序中啟用 App Check:Android 上的 Play Integrity 和 Apple 平台上的 Device Check 或 App Attest。當您啟用 App Check 時,您有助於確保只有您的應用可以訪問您項目的 Firebase 資源。請參閱此功能的概述

1. 設置您的 Firebase 項目

  1. 如果您還沒有將 Firebase 添加到您的 C++ 項目中,請將其添加到您的 C++ 項目中

  2. 在 Firebase 控制台的“項目設置”>“應用程序檢查”部分中註冊您的應用程序以使用 Play Integrity、Device Check 或 App Attest 提供程序使用 App Check。

    您通常需要註冊所有項目的應用程序,因為一旦您為 Firebase 產品啟用強制執行,只有註冊的應用程序才能訪問該產品的後端資源。

    有關如何向每個提供商註冊的詳細說明,請參閱 Android 和 iOS 特定文檔。

  3. 可選:在應用程序註冊設置中,為提供商頒發的 App Check 令牌設置自定義生存時間 (TTL)。您可以將 TTL 設置為 30 分鐘到 7 天之間的任何值。更改此值時,請注意以下權衡:

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

    默認 TTL 對於大多數應用程序來說都是合理的。請注意,App Check 庫會在 TTL 持續時間的一半左右刷新令牌。

2.將App Check庫添加到您的應用中

按照 App Check 的設置說明,將 App Check 庫包含在您的依賴項集中。

3.初始化App Check

將以下初始化代碼添加到您的應用程序,以便它在您使用任何 Firebase 服務(包括創建任何 Firebase 應用程序)之前運行。

安卓

  1. 包括firebase::app_check的頭文件:

    #include "firebase/app_check.h"
  2. 使用 Play Integrity 提供程序初始化 App Check 庫:

    firebase::app_check::AppCheck::SetAppCheckProviderFactory(
      firebase::app_check::PlayIntegrityProviderFactory::GetInstance());
    

iOS+

  1. 包括firebase::app_check的頭文件:

    #include "firebase/app_check.h"
  2. 使用 Device Check 或 App Attest 提供程序初始化 App Check 庫:

    firebase::app_check::AppCheck::SetAppCheckProviderFactory(
      firebase::app_check::DeviceCheckProviderFactory::GetInstance());
    

下一步

在您的應用程序中安裝 App Check 庫後,開始將更新後的應用程序分發給您的用戶。

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

監控指標並啟用執行

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

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

啟用 App Check 強制執行

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

在調試環境中使用 App Check

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

請參閱在 C++ 應用程序中將 App Check 與調試提供程序一起使用