На этой странице показано, как включить 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 по умолчанию, равное 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 для Realtime Database , Cloud Firestore , Cloud Storage , Authentication (бета) и Vertex AI in Firebase .
- Отслеживайте метрики запросов App Check для Cloud Functions .
Включить принудительное выполнение App Check
Когда вы поймете, как App Check повлияет на ваших пользователей, и будете готовы продолжить, вы сможете включить принудительное выполнение App Check :
- Включите принудительное выполнение App Check для Realtime Database , Cloud Firestore , Cloud Storage , Authentication (бета-версия) и Vertex AI in Firebase .
- Включите принудительное применение App Check для Cloud Functions .
Используйте App Check в средах отладки
Если после регистрации приложения для App Check вы хотите запустить приложение в среде, которую App Check обычно не классифицирует как допустимую, например локально во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочная сборка вашего приложения, которая использует поставщика отладки App Check вместо реального поставщика аттестации.
См. раздел Использование App Check с поставщиком отладки в веб-приложениях .