開始透過 C++ 搭配自訂提供者使用 App Check

本頁說明如何使用自訂 App Check 提供者,在 C++ 應用程式中啟用 App Check。啟用 App Check 後,只有您的應用程式才能存取專案的 Firebase 資源。

如要搭配預設供應商使用 App Check,請參閱「使用 C++ 搭配預設供應商啟用 App Check」。

事前準備

1. 將 App Check 程式庫新增至應用程式

按照 App Check 的設定說明,在依附元件集中加入 App Check 程式庫。

2. 實作 App Check 介面

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

您的 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. 初始化 App Check

將下列初始化程式碼加入應用程式,讓它在使用任何 Firebase SDK 前優先執行:

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

後續步驟

在應用程式中安裝 App Check 程式庫後,即可開始向使用者發布更新版應用程式。

更新後的用戶端應用程式會開始傳送 App Check 權杖,連同對 Firebase 發出的每項要求一併傳送,但您必須在 Firebase 控制台的「App Check」App Check部分啟用強制執行設定,Firebase 產品才會要求權杖有效。

監控指標並啟用強制執行功能

不過,啟用強制執行前,請先確認這麼做不會影響現有的合法使用者。另一方面,如果發現應用程式資源有可疑的使用情形,建議盡快啟用強制執行功能。

如要協助做出這項決定,您可以查看所用服務的 App Check 指標:

啟用App Check違規處置功能

瞭解 App Check 對使用者的影響後,即可啟用 App Check 強制執行:

在偵錯環境中使用 App Check

如果您已為應用程式註冊 App Check,但想在 App Check 通常不會歸類為有效的環境中執行應用程式 (例如開發期間的模擬器,或來自持續整合 (CI) 環境),可以建立應用程式的偵錯版本,使用 App Check 偵錯供應器,而非實際的認證供應器。

請參閱「Use App Check with the debug provider with C++」。