Начните использовать проверку приложений с помощью reCAPTCHA Enterprise в приложениях Flutter.

Выберите платформу: iOS+ Android Web Flutter


На этой странице показано, как настроить App Check в приложении Flutter с помощью поставщика reCAPTCHA Enterprise . App Check помогает гарантировать, что доступ к ресурсам бэкэнда вашего проекта будет только у вашего приложения. Чтобы узнать больше, ознакомьтесь с нашим обзором App Check .

Для App Check требуется использование ключей reCAPTCHA на основе оценок , что делает его невидимым для пользователей. Это означает, что поставщик reCAPTCHA Enterprise не потребует от пользователей решения контрольной задачи.

Если для вашего сценария использования требуются функции reCAPTCHA Enterprise , не реализованные в App Check , или если вы хотите использовать App Check с собственным пользовательским поставщиком, см. раздел «Реализация пользовательского поставщика App Check .

1. Настройте свой проект Firebase.

  1. Если вы еще этого не сделали, установите и инициализируйте Firebase в своем проекте Flutter .

  2. В консоли Google Cloud перейдите на страницу «Защита от мошенничества» и выполните следующие действия для поставщика reCAPTCHA Enterprise :

    1. Убедитесь, что вы находитесь в правильном проекте (см. окно выбора проекта в верхней части экрана).

    2. При появлении запроса включите API reCAPTCHA Enterprise .

    3. Создайте ключ на основе вашей целевой платформы:

      iOS+

      Создайте ключ типа iOS и укажите идентификатор пакета вашего приложения (например, com.example.my_app ).

      • Убедитесь, что вы ввели тот же идентификатор пакета (bundle ID), который указывали при создании приложения Firebase для Apple, в свой проект Firebase. Значение идентификатора пакета чувствительно к регистру.

      • В App Check каждому идентификатору пакета может соответствовать только один ключ reCAPTCHA .

      Android

      Создайте ключ типа Android и укажите имя пакета вашего приложения (например, com.example.my_app ).

      • Убедитесь, что вы указали то же имя пакета, что и при создании приложения Firebase для Android в вашем проекте Firebase. Имя пакета чувствительно к регистру.

      • В App Check каждому имени пакета может соответствовать только один ключ reCAPTCHA .

      Веб

      Создайте ключ типа Web и укажите каждый из доменов для ваших веб-приложений.

      • App Check не поддерживает веб-приложения, размещенные более чем на 250 доменах.

      • Никогда не добавляйте localhost в качестве домена к ключу reCAPTCHA , который развернут (или будет развернут) в производственной среде.

      • Оставьте параметр "Использовать проверку флажком" невыбранным .

      Подробные инструкции см. в разделе «Создание ключей reCAPTCHA на основе оценок» .

    4. Запишите каждый ключ. Вам потребуется добавить их в процесс регистрации в консоли Firebase .

  3. В консоли Firebase перейдите в раздел Безопасность > Проверка приложений .

  4. На вкладке «Приложения» зарегистрируйте каждое из приложений целевой платформы для использования App Check с поставщиком reCAPTCHA Enterprise . Вам потребуется указать ключ, полученный в консоли Google Cloud .

  5. Необязательно : установите время жизни токена (TTL).

    В настройках регистрации приложения установите пользовательское время жизни (TTL) для токенов App Check выданных провайдером. Вы можете установить TTL на любое значение от 30 минут до 7 дней. При изменении этого значения следует учитывать следующие компромиссы:

    • Безопасность: Более короткие значения TTL обеспечивают более высокую безопасность, поскольку сокращают период времени, в течение которого утечка или перехват токена могут быть использованы злоумышленником в корыстных целях.
    • Производительность: Более короткие значения TTL означают, что ваше приложение будет выполнять аттестацию чаще. Поскольку процесс аттестации приложения каждый раз добавляет задержку к сетевым запросам, короткий TTL может повлиять на производительность вашего приложения.
    • Квота и стоимость: Более короткие сроки действия TTL и частая повторная аттестация быстрее истощают вашу квоту, а для платных услуг могут стоить дороже. См. раздел «Квоты и лимиты» .

    Значение TTL по умолчанию, равное 1 часу, является разумным для большинства приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину времени TTL.

  6. Необязательно : Настройте дополнительные параметры.

  7. Нажмите « Сохранить ».

(Необязательно) Настройка дополнительных параметров

Когда пользователь открывает ваше приложение, reCAPTCHA Enterprise оценивает уровень риска взаимодействия пользователя с ключевыми словами и возвращает оценку от 0,0 до 1,0 с шагом 0,1.

  • Оценка 0,0 указывает на то, что взаимодействие сопряжено с высоким риском и может быть мошенническим.
  • Оценка 1,0 указывает на то, что взаимодействие представляет низкий риск и, скорее всего, является законным.

App Check позволяет настроить пороговое значение риска для приложения , чтобы вы могли скорректировать свой уровень допустимого риска.

Для большинства сценариев использования рекомендуется использовать значение порога риска по умолчанию, равное 0,5 . Если ваш сценарий требует корректировки, вы можете настроить это значение для каждого из ваших приложений в консоли Firebase (перейдите в раздел Безопасность > Проверка приложений ). Обязательно ознакомьтесь с важными моментами, касающимися настройки порога риска для приложений, приведенными ниже.

2. Добавьте плагин App Check в ваше приложение.

Для использования поставщика reCAPTCHA Enterprise необходимо добавить соответствующий плагин App Check .

  1. Для установки плагина выполните следующую команду из корневой папки вашего Flutter-проекта:

    flutter pub add firebase_app_check
    
  2. После завершения пересоберите свой проект Flutter:

    flutter run
    

3. Инициализация App Check

В вашем приложении необходимо инициализировать App Check перед использованием любых других сервисов Firebase.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

4. Отслеживать показатели и обеспечивать их соблюдение.

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

Обновленное клиентское приложение начнет отправлять токены App Check вместе с каждым запросом в Firebase. Однако App Check не будет блокировать запросы с недействительными токенами до тех пор, пока не будет активирована App Check .

Мониторинг метрик

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

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

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

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

Используйте App Check в средах отладки.

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

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

Для получения более подробной информации см. раздел «Использование App Check с помощью отладчика в приложениях Flutter» .

Цены

App Check создает от вашего имени проверку для подтверждения токена ответа пользователя каждый раз, когда ваше приложение обновляет свой токен App Check . За каждую проверку, созданную сверх бесплатного лимита, с вашего проекта Firebase будет взиматься плата. Подробности см. в разделе «Цены reCAPTCHA .

По умолчанию ваше приложение будет обновлять этот токен дважды в час . Чтобы контролировать частоту обновления токенов App Check (и, следовательно, частоту создания новых тестов), вы можете настроить значение TTL токена .

,
Выберите платформу: iOS+ Android Web Flutter


На этой странице показано, как настроить App Check в приложении Flutter с помощью поставщика reCAPTCHA Enterprise . App Check помогает гарантировать, что доступ к ресурсам бэкэнда вашего проекта будет только у вашего приложения. Чтобы узнать больше, ознакомьтесь с нашим обзором App Check .

Для App Check требуется использование ключей reCAPTCHA на основе оценок , что делает его невидимым для пользователей. Это означает, что поставщик reCAPTCHA Enterprise не потребует от пользователей решения контрольной задачи.

Если для вашего сценария использования требуются функции reCAPTCHA Enterprise , не реализованные в App Check , или если вы хотите использовать App Check с собственным пользовательским поставщиком, см. раздел «Реализация пользовательского поставщика App Check .

1. Настройте свой проект Firebase.

  1. Если вы еще этого не сделали, установите и инициализируйте Firebase в своем проекте Flutter .

  2. В консоли Google Cloud перейдите на страницу «Защита от мошенничества» и выполните следующие действия для поставщика reCAPTCHA Enterprise :

    1. Убедитесь, что вы находитесь в правильном проекте (см. окно выбора проекта в верхней части экрана).

    2. При появлении запроса включите API reCAPTCHA Enterprise .

    3. Создайте ключ на основе вашей целевой платформы:

      iOS+

      Создайте ключ типа iOS и укажите идентификатор пакета вашего приложения (например, com.example.my_app ).

      • Убедитесь, что вы ввели тот же идентификатор пакета (bundle ID), который указывали при создании приложения Firebase для Apple, в свой проект Firebase. Значение идентификатора пакета чувствительно к регистру.

      • В App Check каждому идентификатору пакета может соответствовать только один ключ reCAPTCHA .

      Android

      Создайте ключ типа Android и укажите имя пакета вашего приложения (например, com.example.my_app ).

      • Убедитесь, что вы указали то же имя пакета, что и при создании приложения Firebase для Android в вашем проекте Firebase. Имя пакета чувствительно к регистру.

      • В App Check каждому имени пакета может соответствовать только один ключ reCAPTCHA .

      Веб

      Создайте ключ типа Web и укажите каждый из доменов для ваших веб-приложений.

      • App Check не поддерживает веб-приложения, размещенные более чем на 250 доменах.

      • Никогда не добавляйте localhost в качестве домена к ключу reCAPTCHA , который развернут (или будет развернут) в производственной среде.

      • Оставьте параметр "Использовать проверку флажком" невыбранным .

      Подробные инструкции см. в разделе «Создание ключей reCAPTCHA на основе оценок» .

    4. Запишите каждый ключ. Вам потребуется добавить их в процесс регистрации в консоли Firebase .

  3. В консоли Firebase перейдите в раздел Безопасность > Проверка приложений .

  4. На вкладке «Приложения» зарегистрируйте каждое из приложений целевой платформы для использования App Check с поставщиком reCAPTCHA Enterprise . Вам потребуется указать ключ, полученный в консоли Google Cloud .

  5. Необязательно : установите время жизни токена (TTL).

    В настройках регистрации приложения установите пользовательское время жизни (TTL) для токенов App Check выданных провайдером. Вы можете установить TTL на любое значение от 30 минут до 7 дней. При изменении этого значения следует учитывать следующие компромиссы:

    • Безопасность: Более короткие значения TTL обеспечивают более высокую безопасность, поскольку сокращают период времени, в течение которого утечка или перехват токена могут быть использованы злоумышленником в корыстных целях.
    • Производительность: Более короткие значения TTL означают, что ваше приложение будет выполнять аттестацию чаще. Поскольку процесс аттестации приложения каждый раз добавляет задержку к сетевым запросам, короткий TTL может повлиять на производительность вашего приложения.
    • Квота и стоимость: Более короткие сроки действия TTL и частая повторная аттестация быстрее истощают вашу квоту, а для платных услуг могут стоить дороже. См. раздел «Квоты и лимиты» .

    Значение TTL по умолчанию, равное 1 часу, является разумным для большинства приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину времени TTL.

  6. Необязательно : Настройте дополнительные параметры.

  7. Нажмите « Сохранить ».

(Необязательно) Настройка дополнительных параметров

Когда пользователь открывает ваше приложение, reCAPTCHA Enterprise оценивает уровень риска взаимодействия пользователя с ключевыми словами и возвращает оценку от 0,0 до 1,0 с шагом 0,1.

  • Оценка 0,0 указывает на то, что взаимодействие сопряжено с высоким риском и может быть мошенническим.
  • Оценка 1,0 указывает на то, что взаимодействие представляет низкий риск и, скорее всего, является законным.

App Check позволяет настроить пороговое значение риска для приложения , чтобы вы могли скорректировать свой уровень допустимого риска.

Для большинства сценариев использования рекомендуется использовать значение порога риска по умолчанию, равное 0,5 . Если ваш сценарий требует корректировки, вы можете настроить это значение для каждого из ваших приложений в консоли Firebase (перейдите в раздел Безопасность > Проверка приложений ). Обязательно ознакомьтесь с важными моментами, касающимися настройки порога риска для приложений, приведенными ниже.

2. Добавьте плагин App Check в ваше приложение.

Для использования поставщика reCAPTCHA Enterprise необходимо добавить соответствующий плагин App Check .

  1. Для установки плагина выполните следующую команду из корневой папки вашего Flutter-проекта:

    flutter pub add firebase_app_check
    
  2. После завершения пересоберите свой проект Flutter:

    flutter run
    

3. Инициализация App Check

В вашем приложении необходимо инициализировать App Check перед использованием любых других сервисов Firebase.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

4. Отслеживать показатели и обеспечивать их соблюдение.

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

Обновленное клиентское приложение начнет отправлять токены App Check вместе с каждым запросом в Firebase. Однако App Check не будет блокировать запросы с недействительными токенами до тех пор, пока не будет активирована App Check .

Мониторинг метрик

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

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

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

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

Используйте App Check в средах отладки.

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

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

Для получения более подробной информации см. раздел «Использование App Check с помощью отладчика в приложениях Flutter» .

Цены

App Check создает от вашего имени проверку для подтверждения токена ответа пользователя каждый раз, когда ваше приложение обновляет свой токен App Check . За каждую проверку, созданную сверх бесплатного лимита, с вашего проекта Firebase будет взиматься плата. Подробности см. в разделе «Цены reCAPTCHA .

По умолчанию ваше приложение будет обновлять этот токен дважды в час . Чтобы контролировать частоту обновления токенов App Check (и, следовательно, частоту создания новых тестов), вы можете настроить значение TTL токена .

,
Выберите платформу: iOS+ Android Web Flutter


На этой странице показано, как настроить App Check в приложении Flutter с помощью поставщика reCAPTCHA Enterprise . App Check помогает гарантировать, что доступ к ресурсам бэкэнда вашего проекта будет только у вашего приложения. Чтобы узнать больше, ознакомьтесь с нашим обзором App Check .

Для App Check требуется использование ключей reCAPTCHA на основе оценок , что делает его невидимым для пользователей. Это означает, что поставщик reCAPTCHA Enterprise не потребует от пользователей решения контрольной задачи.

Если для вашего сценария использования требуются функции reCAPTCHA Enterprise , не реализованные в App Check , или если вы хотите использовать App Check с собственным пользовательским поставщиком, см. раздел «Реализация пользовательского поставщика App Check .

1. Настройте свой проект Firebase.

  1. Если вы еще этого не сделали, установите и инициализируйте Firebase в своем проекте Flutter .

  2. В консоли Google Cloud перейдите на страницу «Защита от мошенничества» и выполните следующие действия для поставщика reCAPTCHA Enterprise :

    1. Убедитесь, что вы находитесь в правильном проекте (см. окно выбора проекта в верхней части экрана).

    2. При появлении запроса включите API reCAPTCHA Enterprise .

    3. Создайте ключ на основе вашей целевой платформы:

      iOS+

      Создайте ключ типа iOS и укажите идентификатор пакета вашего приложения (например, com.example.my_app ).

      • Убедитесь, что вы ввели тот же идентификатор пакета (bundle ID), который указывали при создании приложения Firebase для Apple, в свой проект Firebase. Значение идентификатора пакета чувствительно к регистру.

      • В App Check каждому идентификатору пакета может соответствовать только один ключ reCAPTCHA .

      Android

      Создайте ключ типа Android и укажите имя пакета вашего приложения (например, com.example.my_app ).

      • Убедитесь, что вы указали то же имя пакета, что и при создании приложения Firebase для Android в вашем проекте Firebase. Имя пакета чувствительно к регистру.

      • В App Check каждому имени пакета может соответствовать только один ключ reCAPTCHA .

      Веб

      Создайте ключ типа Web и укажите каждый из доменов для ваших веб-приложений.

      • App Check не поддерживает веб-приложения, размещенные более чем на 250 доменах.

      • Никогда не добавляйте localhost в качестве домена к ключу reCAPTCHA , который развернут (или будет развернут) в производственной среде.

      • Оставьте параметр "Использовать проверку флажком" невыбранным .

      Подробные инструкции см. в разделе «Создание ключей reCAPTCHA на основе оценок» .

    4. Запишите каждый ключ. Вам потребуется добавить их в процесс регистрации в консоли Firebase .

  3. В консоли Firebase перейдите в раздел Безопасность > Проверка приложений .

  4. На вкладке «Приложения» зарегистрируйте каждое из приложений целевой платформы для использования App Check с поставщиком reCAPTCHA Enterprise . Вам потребуется указать ключ, полученный в консоли Google Cloud .

  5. Необязательно : установите время жизни токена (TTL).

    В настройках регистрации приложения установите пользовательское время жизни (TTL) для токенов App Check выданных провайдером. Вы можете установить TTL на любое значение от 30 минут до 7 дней. При изменении этого значения следует учитывать следующие компромиссы:

    • Безопасность: Более короткие значения TTL обеспечивают более высокую безопасность, поскольку сокращают период времени, в течение которого утечка или перехват токена могут быть использованы злоумышленником в корыстных целях.
    • Производительность: Более короткие значения TTL означают, что ваше приложение будет выполнять аттестацию чаще. Поскольку процесс аттестации приложения каждый раз добавляет задержку к сетевым запросам, короткий TTL может повлиять на производительность вашего приложения.
    • Квота и стоимость: Более короткие сроки действия TTL и частая повторная аттестация быстрее истощают вашу квоту, а для платных услуг могут стоить дороже. См. раздел «Квоты и лимиты» .

    Значение TTL по умолчанию, равное 1 часу, является разумным для большинства приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину времени TTL.

  6. Необязательно : Настройте дополнительные параметры.

  7. Нажмите « Сохранить ».

(Необязательно) Настройка дополнительных параметров

Когда пользователь открывает ваше приложение, reCAPTCHA Enterprise оценивает уровень риска взаимодействия пользователя с ключевыми словами и возвращает оценку от 0,0 до 1,0 с шагом 0,1.

  • Оценка 0,0 указывает на то, что взаимодействие сопряжено с высоким риском и может быть мошенническим.
  • Оценка 1,0 указывает на то, что взаимодействие представляет низкий риск и, скорее всего, является законным.

App Check позволяет настроить пороговое значение риска для приложения , чтобы вы могли скорректировать свой уровень допустимого риска.

Для большинства сценариев использования рекомендуется использовать значение порога риска по умолчанию, равное 0,5 . Если ваш сценарий требует корректировки, вы можете настроить это значение для каждого из ваших приложений в консоли Firebase (перейдите в раздел Безопасность > Проверка приложений ). Обязательно ознакомьтесь с важными моментами, касающимися настройки порога риска для приложений, приведенными ниже.

2. Добавьте плагин App Check в ваше приложение.

Для использования поставщика reCAPTCHA Enterprise необходимо добавить соответствующий плагин App Check .

  1. Для установки плагина выполните следующую команду из корневой папки вашего Flutter-проекта:

    flutter pub add firebase_app_check
    
  2. После завершения пересоберите свой проект Flutter:

    flutter run
    

3. Инициализация App Check

В вашем приложении необходимо инициализировать App Check перед использованием любых других сервисов Firebase.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

4. Отслеживать показатели и обеспечивать их соблюдение.

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

Обновленное клиентское приложение начнет отправлять токены App Check вместе с каждым запросом в Firebase. Однако App Check не будет блокировать запросы с недействительными токенами до тех пор, пока не будет активирована App Check .

Мониторинг метрик

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

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

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

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

Используйте App Check в средах отладки.

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

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

Для получения более подробной информации см. раздел «Использование App Check с помощью отладчика в приложениях Flutter» .

Цены

App Check создает от вашего имени проверку для подтверждения токена ответа пользователя каждый раз, когда ваше приложение обновляет свой токен App Check . За каждую проверку, созданную сверх бесплатного лимита, с вашего проекта Firebase будет взиматься плата. Подробности см. в разделе «Цены reCAPTCHA .

По умолчанию ваше приложение будет обновлять этот токен дважды в час . Чтобы контролировать частоту обновления токенов App Check (и, следовательно, частоту создания новых тестов), вы можете настроить значение TTL токена .

,
Выберите платформу: iOS+ Android Web Flutter


This page shows you how to set up App Check in a Flutter app, using the reCAPTCHA Enterprise provider. App Check helps to ensure that only your app can access your project's backend resources. To learn more, review our overview of App Check .

App Check requires the use of score-based reCAPTCHA keys, which makes it invisible to users. This means that the reCAPTCHA Enterprise provider won't require users to solve a challenge at any time.

If your use case requires reCAPTCHA Enterprise features not implemented by App Check , or if you want to use App Check with your own custom provider, see Implement a custom App Check provider .

1. Set up your Firebase project

  1. If you haven't already, install and initialize Firebase in your Flutter project .

  2. In the Google Cloud console, go to the Fraud Defense page , and do the following for the reCAPTCHA Enterprise provider:

    1. Make sure that you're in the correct project (see the project picker at the top of the screen).

    2. If prompted, enable the reCAPTCHA Enterprise API.

    3. Create a key based on your target platform:

      iOS+

      Create an iOS -type key, and specify your app's bundle ID (for example, com.example.my_app ).

      • Make sure that you enter the same bundle ID that you provided when you created your Firebase Apple App in your Firebase project. The bundle ID value is case-sensitive.

      • For App Check , each bundle ID can only correspond to a single reCAPTCHA key.

      Android

      Create an Android -type key, and specify your app's package name (for example, com.example.my_app ).

      • Make sure that you enter the same package name that you provided when you created your Firebase Android App in your Firebase project. The package name value is case-sensitive.

      • For App Check , each package name can only correspond to a single reCAPTCHA key.

      Веб

      Create a Web -type key, and specify each of the domains for your web apps.

      • App Check does not support web apps that serve on more than 250 domains.

      • Never add localhost as a domain to a reCAPTCHA key that is deployed to (or is going to be deployed to) production.

      • Leave the "Use checkbox challenge" option unselected .

      For detailed instructions, see Create score-based reCAPTCHA keys .

    4. Take note of each key. You'll need to add them into the registration flow in the Firebase console.

  3. In the Firebase console, navigate to Security > App Check .

  4. In the Apps tab, register each of your target platform apps to use App Check with the reCAPTCHA Enterprise provider. You'll need to provide the key you got in the Google Cloud console.

  5. Optional : Set the token time to live (TTL).

    In the app registration settings, set a custom time to live (TTL) for App Check tokens issued by the provider. You can set the TTL to any value between 30 minutes and 7 days. When changing this value, be aware of the following tradeoffs:

    • Security: Shorter TTLs provide stronger security, because it reduces the window in which a leaked or intercepted token can be abused by an attacker.
    • Performance: Shorter TTLs mean your app will perform attestation more frequently. Because the app attestation process adds latency to network requests every time it's performed, a short TTL can impact the performance of your app.
    • Quota and cost: Shorter TTLs and frequent re-attestation deplete your quota faster, and for paid services, potentially cost more. See Quotas & limits .

    The default TTL of 1 hour is reasonable for most apps. Note that the App Check library refreshes tokens at approximately half the TTL duration.

  6. Optional : Configure advanced settings.

  7. Нажмите « Сохранить ».

(Optional) Configure advanced settings

When a user opens your app, reCAPTCHA Enterprise evaluates the level of risk the user interaction under the key poses, and returns a score between 0.0 and 1.0, in increments of 0.1.

  • A score of 0.0 indicates that the interaction poses high risk and might be fraudulent.
  • A score of 1.0 indicates that the interaction poses low risk and is very likely legitimate.

App Check lets you configure an app risk threshold so you can adjust your tolerance for this risk.

For most use cases, the default threshold value of 0.5 is recommended. If your use case requires adjustment, you can configure this value for each of your apps in the Firebase console (go to Security > App Check ). Make sure to expand and review some important considerations about configuring the app risk threshold below.

2. Add the App Check plugin to your app

To use the reCAPTCHA Enterprise provider, you must add the corresponding App Check plugin.

  1. Для установки плагина выполните следующую команду из корневой папки вашего Flutter-проекта:

    flutter pub add firebase_app_check
    
  2. Once complete, rebuild your Flutter project:

    flutter run
    

3. Initialize App Check

In your app, you need to initialize App Check before you use any other Firebase services.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

4. Monitor metrics and enable enforcement

After you've set up App Check in your app, start distributing the updated app to your users.

The updated client app will begin sending App Check tokens along with every request it makes to Firebase. However, App Check won't block requests with invalid tokens until App Check is enforced .

Monitor metrics

Before you enable enforcement , make sure that doing so won't disrupt your existing legitimate users. However, if you're seeing suspicious use of your app resources, you might want to enable enforcement sooner.

To help make this decision, you can review App Check metrics for the services you use:

Enable App Check enforcement

When you understand how App Check will affect your users and you're ready to proceed, you can enable App Check enforcement:

Use App Check in debug environments

App Check classifies some environments as invalid, such as requests from an emulator / simulator or localhost during development or from a continuous integration (CI) environment.

To run your app in these types of environments after App Check is enforced, you need to create a debug build of your app that uses the App Check debug provider instead of a production attestation provider.

For more details, see Use App Check with the debug provider in Flutter apps .

Цены

App Check creates an assessment on your behalf to validate the user's response token each time your app refreshes its App Check token. Your Firebase project will be charged for each assessment created above the no-cost quota. For details, see reCAPTCHA pricing .

By default, your app will refresh this token twice every 1 hour . To control how frequently your app refreshes App Check tokens (and thus how frequently new assessments are created), you can configure the token TTL .