На этой странице показано, как включить проверку приложений в приложении Flutter, используя поставщиков по умолчанию: Play Integrity на Android, проверку устройства на платформах Apple и reCAPTCHA v3 в Интернете. Включив проверку приложений, вы гарантируете, что только ваше приложение сможет получить доступ к ресурсам Firebase вашего проекта. См. обзор этой функции.
1. Настройте свой проект Firebase
Установите и инициализируйте FlutterFire, если вы еще этого не сделали.
Зарегистрируйте свои приложения, чтобы использовать проверку приложений у поставщиков Play Integrity, Device Check и reCAPTCHA в разделе «Настройки проекта» > «Проверка приложений» консоли Firebase.
Обычно вам необходимо зарегистрировать все приложения вашего проекта, поскольку после включения принудительного применения для продукта Firebase только зарегистрированные приложения смогут получить доступ к серверным ресурсам продукта.
Необязательно : в настройках регистрации приложения установите собственное время жизни (TTL) для токенов проверки приложений, выданных поставщиком. Вы можете установить любое значение TTL от 30 минут до 7 дней. При изменении этого значения помните о следующих компромиссах:
- Безопасность. Более короткие TTL обеспечивают более высокий уровень безопасности, поскольку уменьшают время, в течение которого злоумышленник может использовать утекший или перехваченный токен.
- Производительность. Более короткие TTL означают, что ваше приложение будет чаще выполнять аттестацию. Поскольку процесс аттестации приложения увеличивает задержку к сетевым запросам каждый раз, когда он выполняется, короткий срок жизни может повлиять на производительность вашего приложения.
- Квота и стоимость. Более короткие сроки жизни и частая повторная аттестация быстрее истощают вашу квоту, а платные услуги могут стоить дороже. См. Квоты и ограничения .
Значение TTL по умолчанию подходит для большинства приложений. Обратите внимание, что библиотека проверки приложений обновляет токены примерно за половину продолжительности TTL.
2. Добавьте библиотеку проверки приложений в свое приложение.
Из корня вашего проекта Flutter выполните следующую команду, чтобы установить плагин:
flutter pub add firebase_app_check
После завершения перестройте приложение Flutter:
flutter run
3. Инициализировать проверку приложения
Добавьте следующий код инициализации в свое приложение, чтобы оно запускалось до использования каких-либо служб Firebase, таких как хранилище, но после вызова Firebase.initializeApp()
;
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate(
// You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
// argument for `webProvider`
webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
// Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Safety Net provider
// 3. Play Integrity provider
androidProvider: AndroidProvider.debug,
// Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Device Check provider
// 3. App Attest provider
// 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
appleProvider: AppleProvider.appAttest,
);
runApp(App());
}
Следующие шаги
После установки библиотеки App Check в ваше приложение начните распространять обновленное приложение среди своих пользователей.
Обновленное клиентское приложение начнет отправлять токены проверки приложений вместе с каждым запросом к Firebase, но продукты Firebase не будут требовать, чтобы токены были действительными, пока вы не включите принудительное применение в разделе «Проверка приложений» консоли Firebase.
Отслеживайте показатели и обеспечивайте принудительное применение
Однако прежде чем включать принудительное применение, вы должны убедиться, что это не повредит работе существующих законных пользователей. С другой стороны, если вы заметили подозрительное использование ресурсов вашего приложения, возможно, вам захочется включить принудительное применение раньше.
Чтобы принять это решение, вы можете просмотреть показатели проверки приложений для используемых вами сервисов:
- Отслеживайте показатели запросов проверки приложений для базы данных в реальном времени, Cloud Firestore, облачного хранилища и аутентификации.
- Отслеживайте метрики запросов App Check для облачных функций .
Включить принудительное выполнение проверки приложений
Когда вы поймете, как проверка приложений повлияет на ваших пользователей, и будете готовы продолжить, вы сможете включить принудительное выполнение проверки приложений:
- Включите принудительное выполнение проверки приложений для базы данных в реальном времени, Cloud Firestore, облачного хранилища и аутентификации.
- Включите принудительное применение проверки приложений для облачных функций .
Используйте проверку приложений в средах отладки
Если после регистрации приложения для проверки приложений вы хотите запустить его в среде, которую проверка приложений обычно не классифицирует как допустимую, например, в эмуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создайте отладочную сборку вашего приложения, которая использует поставщика отладки App Check вместо реального поставщика аттестации.
См . раздел «Использование проверки приложений с поставщиком отладки в приложениях Flutter» .