На этой странице показано, как включить App Check в веб-приложении с помощью встроенного провайдера reCAPTCHA v3. Включение App Check гарантирует, что доступ к ресурсам Firebase вашего проекта будет иметь только ваше приложение. См. обзор этой функции.
Для новых интеграций следует использовать reCAPTCHA Enterprise, и мы настоятельно рекомендуем разработчикам приложений, использующих reCAPTCHA v3, по возможности обновиться.
Чтобы узнать о различиях между reCAPTCHA v3 и reCAPTCHA Enterprise, ознакомьтесь со сравнением функций .
Обратите внимание, что reCAPTCHA v3 невидима для пользователей. Провайдер reCAPTCHA v3 не требует от пользователей решения каких-либо задач. См. документацию по reCAPTCHA v3 .
Если вы хотите использовать App Check с собственным поставщиком, см. раздел Реализация собственного поставщика App Check .
1. Настройте свой проект Firebase
Добавьте Firebase в свой проект JavaScript, если вы еще этого не сделали.
Зарегистрируйте свой сайт в reCAPTCHA v3 и получите ключ сайта reCAPTCHA v3 и секретный ключ.
Зарегистрируйте свои приложения для использования App Check у поставщика reCAPTCHA в разделе App Check консоли Firebase . Вам потребуется указать секретный ключ, полученный на предыдущем шаге.
Обычно вам необходимо зарегистрировать все приложения вашего проекта, поскольку после включения принудительного применения для продукта Firebase только зарегистрированные приложения смогут получить доступ к внутренним ресурсам продукта.
Необязательно : в настройках регистрации приложения задайте время жизни (TTL) для токенов App Check выдаваемых поставщиком. Вы можете установить любое значение TTL от 30 минут до 7 дней. При изменении этого значения учитывайте следующие компромиссы:
- Безопасность: Более короткие значения TTL обеспечивают более высокий уровень безопасности, поскольку уменьшают время, в течение которого злоумышленник может злоупотребить утечкой или перехватом токена.
- Производительность: Более короткие TTL означают, что ваше приложение будет чаще выполнять аттестацию. Поскольку процесс аттестации приложения увеличивает задержку сетевых запросов при каждом выполнении, короткий TTL может повлиять на производительность вашего приложения.
- Квота и стоимость: более короткие TTL и частая повторная аттестация быстрее исчерпывают вашу квоту, а платные услуги могут стоить дороже. См. раздел «Квоты и лимиты» .
Значение TTL по умолчанию, равное 1 дню , подходит большинству приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину срока TTL.
2. Добавьте библиотеку App Check в свое приложение.
Добавьте Firebase в своё веб-приложение, если вы ещё этого не сделали. Обязательно импортируйте библиотеку App Check .
3. Инициализируйте App Check
Добавьте следующий код инициализации в приложение, прежде чем обращаться к каким-либо службам Firebase. Вам потребуется передать ключ сайта reCAPTCHA, созданный в консоли reCAPTCHA, в метод activate()
.
Web
import { initializeApp } from "firebase/app"; import { initializeAppCheck, ReCaptchaV3Provider } from "firebase/app-check"; const app = initializeApp({ // Your firebase configuration object }); // Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this // key is the counterpart to the secret key you set in the Firebase console. const appCheck = initializeAppCheck(app, { provider: new ReCaptchaV3Provider('abcdefghijklmnopqrstuvwxy-1234567890abcd'), // Optional argument. If true, the SDK automatically refreshes App Check // tokens as needed. isTokenAutoRefreshEnabled: true });
Web
firebase.initializeApp({ // Your firebase configuration object }); const appCheck = firebase.appCheck(); // Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this // key is the counterpart to the secret key you set in the Firebase console. appCheck.activate( 'abcdefghijklmnopqrstuvwxy-1234567890abcd', // Optional argument. If true, the SDK automatically refreshes App Check // tokens as needed. true);
Следующие шаги
После установки библиотеки 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 с поставщиком отладки в веб-приложениях .