使用 App Check 保護非 Firebase 資源

您可以使用 App Check 保護應用程式的非 Firebase 資源,例如自行管理的後端。如要這麼做,您需要執行這兩項操作:

  • 修改應用程式用戶端,以便在每個要求傳送 App Check 權杖至後端,如本頁所述。
  • 修改後端,要求每項要求都必須提供有效的 App Check 權杖,如「從自訂後端驗證 App Check 權杖」一文所述。

事前準備

使用預設供應商,將 App Check 加入應用程式。

透過後端要求傳送 App Check 權杖

為確保後端要求包含有效、未過期的 App Check 權杖, 前面加上 AppCheck::GetAppCheckToken() 的呼叫。應用程式 檢查程式庫會視需要重新整理權杖。

取得有效的權杖後,請將該權杖與要求傳送至後端。具體做法由您決定,但請勿將 App Check 權杖當作網址的一部分傳送,包括在查詢參數中,否則可能會發生意外洩漏和攔截的情形。建議您透過自訂 HTTP 標頭傳送權杖。

例如:

void CallApiExample() {
    firebase_app_check::AppCheck* app_check = firebase::app_check::AppCheck::GetInstance();
    Future<std::string> app_check_future = app_check->GetAppCheckToken(false);
    app_check_future.OnCompletion([&](const Future<std::string>& future_token) {
        if (future_token.result()) {
            // Got a valid App Check token. Include it in your own http calls.
        }
    }
}