На этой странице показано, как включить App Check в приложении C++, используя ваш пользовательский поставщик App Check . Когда вы включаете App Check , вы помогаете гарантировать, что только ваше приложение может получить доступ к ресурсам Firebase вашего проекта.
Если вы хотите использовать App Check с поставщиками по умолчанию, см. раздел Включение App Check с поставщиками по умолчанию с помощью C++ .
Прежде чем начать
Добавьте Firebase в свой проект 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 в консоли Firebase.
Мониторинг показателей и обеспечение соблюдения
Однако перед включением принудительного применения следует убедиться, что это не помешает вашим существующим законным пользователям. С другой стороны, если вы видите подозрительное использование ресурсов вашего приложения, вы можете включить принудительное применение раньше.
Чтобы принять решение, вы можете изучить показатели App Check для используемых вами сервисов:
- Отслеживайте метрики запросов App Check для Data Connect , Firebase AI Logic , Realtime Database , Cloud Firestore , Cloud Storage , Authentication , Google Identity для iOS, Maps JavaScript API и Places API (новое).
- Отслеживайте метрики запросов App Check для Cloud Functions .
Включить принудительное выполнение App Check
Когда вы поймете, как App Check повлияет на ваших пользователей, и будете готовы продолжить, вы можете включить принудительное выполнение App Check :
- Включите принудительное выполнение App Check для Data Connect , Firebase AI Logic , Realtime Database , Cloud Firestore , Cloud Storage , Authentication , Google Identity для iOS, Maps JavaScript API и Places API (новое).
- Включите принудительное выполнение App Check для Cloud Functions .
Используйте App Check в отладочных средах
Если после регистрации приложения для App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как допустимую, например, в эмуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочную сборку своего приложения, которая использует поставщик отладки App Check вместо настоящего поставщика подтверждения подлинности.
См. раздел Использование App Check с поставщиком отладки в C++ .