Начните использовать проверку приложений с помощью специального поставщика на C++.

На этой странице показано, как включить проверку приложений в приложении C++ с помощью собственного поставщика проверки приложений . Включив проверку приложений, вы гарантируете, что только ваше приложение сможет получить доступ к ресурсам Firebase вашего проекта.

Если вы хотите использовать проверку приложений с поставщиками по умолчанию, см. раздел Включение проверки приложений с поставщиками по умолчанию с помощью C++ .

Прежде чем вы начнете

1. Добавьте библиотеку проверки приложений в свое приложение.

Включите библиотеку App Check в свой набор зависимостей, следуя инструкциям по настройке App Check.

2. Реализуйте интерфейсы проверки приложений.

Во-первых, вам необходимо создать классы, реализующие интерфейсы AppCheckProvider и AppCheckProviderFactory .

Ваш класс AppCheckProvider должен иметь метод GetToken() , который собирает любую информацию, необходимую вашему пользовательскому поставщику проверки приложений в качестве доказательства подлинности, и отправляет ее в службу получения токенов в обмен на токен проверки приложений. SDK App Check занимается кэшированием токенов, поэтому всегда получайте новый токен в своей реализации 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. Инициализировать проверку приложения

Добавьте в свое приложение следующий код инициализации, чтобы оно запускалось до использования любых других SDK Firebase:

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

Следующие шаги

После установки библиотеки App Check в ваше приложение начните распространять обновленное приложение среди своих пользователей.

Обновленное клиентское приложение начнет отправлять токены проверки приложений вместе с каждым запросом к Firebase, но продукты Firebase не будут требовать, чтобы токены были действительными, пока вы не включите принудительное применение в разделе «Проверка приложений» консоли Firebase.

Отслеживайте показатели и обеспечивайте принудительное применение

Однако прежде чем включать принудительное применение, вы должны убедиться, что это не повредит работе существующих законных пользователей. С другой стороны, если вы заметили подозрительное использование ресурсов вашего приложения, возможно, вам захочется включить принудительное применение раньше.

Чтобы принять это решение, вы можете просмотреть показатели проверки приложений для используемых вами сервисов:

Включить принудительное выполнение проверки приложений

Когда вы поймете, как проверка приложений повлияет на ваших пользователей, и будете готовы продолжить, вы сможете включить принудительное выполнение проверки приложений:

Используйте проверку приложений в средах отладки

Если после регистрации приложения для проверки приложений вы хотите запустить его в среде, которую проверка приложений обычно не классифицирует как допустимую, например в эмуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создайте отладочную сборку вашего приложения, которая использует поставщика отладки App Check вместо реального поставщика аттестации.

См. раздел Использование проверки приложений с поставщиком отладки с C++ .