開始使用 App Check 與 C++ 自訂提供者

本頁向您展示如何使用自訂 App Check 提供者在 C++ 應用程式中啟用 App Check。啟用應用程式檢查後,您可以協助確保只有您的應用程式可以存取專案的 Firebase 資源。

如果您想將 App Check 與預設提供者一起使用,請參閱使用 C++ 啟用預設提供者的 App Check

在你開始之前

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

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

2. 實作App Check接口

首先,您需要建立實作AppCheckProviderAppCheckProviderFactory介面的類別。

您的AppCheckProvider類別必須具有GetToken()方法,該方法收集您的自訂 App Check 提供者所需的任何資訊作為真實性證明,並將其發送到您的令牌獲取服務以換取 App Check 令牌。 App Check SDK 處理令牌緩存,因此始終在GetToken()的實作中取得新令牌。

class YourCustomAppCheckProvider : public AppCheckProvider {
  void GetToken(std::function<void(AppCheckToken, int, const std::string&)>
      completion_callback) {
    // Logic to exchange proof of authenticity for an App Check token and
    //   expiration time.
    // ...

    // Create AppCheckToken object.
    AppCheckToken appCheckToken;
    appCheckToken.token = token;
    appCheckToken.expire_time_millis = expireTime;

    completion_callback(appCheckToken, 0, "");

    // Or, if needing to return an error
    //completion_callback({}, error_code, "Error description");
  }
};

另外,實作一個AppCheckProviderFactory類別來建立AppCheckProvider實作的實例:

class YourCustomAppCheckProviderFactory : public AppCheckProviderFactory {
  AppCheckProvider* CreateProvider(App* app) {
    // Create and return an AppCheckProvider object.
    return new YourCustomAppCheckProvider(app);
  }
}

3. 初始化應用檢查

將以下初始化程式碼新增至您的應用程式中,以便它在您使用任何其他 Firebase SDK 之前執行:

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

下一步

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

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

監控指標並啟用執行

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

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

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

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

在調試環境中使用 App Check

如果在為App Check 註冊您的應用程式後,您希望在App Check 通常不會歸類為有效的環境中運行您的應用程序,例如開發期間的模擬器,或在持續整合(CI) 環境中,您可以建立應用程式的偵錯版本,該版本使用 App Check 偵錯提供者而不是真正的證明提供者。

請參閱將 App Check 與 C++ 偵錯提供者結合使用