Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Защитите ресурсы, не относящиеся к Firebase, с помощью проверки приложений в веб-приложениях.

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Вы можете защитить ресурсы вашего приложения, не относящиеся к Firebase, например, собственные серверные части, с помощью проверки приложений. Для этого вам нужно будет выполнить оба следующих действия:

Прежде чем вы начнете

Добавьте проверку приложений в свое приложение с помощью поставщика reCAPTCHA v3 , поставщика reCAPTCHA Enterprise или пользовательского поставщика .

Отправка токенов App Check с внутренними запросами

В клиенте вашего приложения перед каждым запросом получите действительный токен App Check с неистекшим сроком действия с помощью appCheck().getToken() . При необходимости библиотека проверки приложений обновит токен.

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

Web version 9

const { initializeAppCheck, getToken } = require('firebase/app-check');

const appCheck = initializeAppCheck(
    app,
    { provider: provider } // ReCaptchaV3Provider or CustomProvider
);

const callApiWithAppCheckExample = async () => {
  let appCheckTokenResponse;
  try {
      appCheckTokenResponse = await getToken(appCheck, /* forceRefresh= */ false);
  } catch (err) {
      // Handle any errors if the token was not retrieved.
      return;
  }

  // Include the App Check token with requests to your server.
  const apiResponse = await fetch('https://yourbackend.example.com/yourApiEndpoint', {
      headers: {
          'X-Firebase-AppCheck': appCheckTokenResponse.token,
      }
  });

  // Handle response from your backend.
};

Web version 8

const callApiWithAppCheckExample = async () => {
  let appCheckTokenResponse;
  try {
      appCheckTokenResponse = await firebase.appCheck().getToken(/* forceRefresh= */ false);
  } catch (err) {
      // Handle any errors if the token was not retrieved.
      return;
  }

  // Include the App Check token with requests to your server.
  const apiResponse = await fetch('https://yourbackend.example.com/yourApiEndpoint', {
      headers: {
          'X-Firebase-AppCheck': appCheckTokenResponse.token,
      }
  });

  // Handle response from your backend.
};