Firebase is back at Google I/O on May 10! Register now

Web uygulamalarında Uygulama Kontrolü ile Firebase dışı kaynakları koruyun

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Uygulama Kontrolü ile uygulamanızın kendi kendine barındırılan arka uçlar gibi Firebase dışı kaynaklarını koruyabilirsiniz. Bunu yapmak için, aşağıdakilerin ikisini de yapmanız gerekir:

Sen başlamadan önce

reCAPTCHA v3 sağlayıcı , reCAPTCHA Enterprise sağlayıcı veya özel bir sağlayıcı kullanarak uygulamanıza Uygulama Kontrolü ekleyin.

Uygulama Kontrolü belirteçlerini arka uç istekleriyle gönderin

Uygulama istemcinizde, her istekten önce, appCheck().getToken() ile geçerli, süresi dolmamış bir Uygulama Kontrolü belirteci alın. Uygulama Kontrolü kitaplığı, gerekirse belirteci yenileyecektir.

Geçerli bir jetonunuz olduğunda, bunu istekle birlikte arka ucunuza gönderin. Bunu nasıl gerçekleştireceğinizin ayrıntıları size bağlıdır, ancak Uygulama Kontrolü belirteçlerini URL'lerin bir parçası olarak göndermeyin , sorgu parametreleri dahil, çünkü bu onları kazara sızıntıya ve ele geçirmeye karşı savunmasız hale getirir. Aşağıdaki örnek, belirteci önerilen yaklaşım olan özel bir HTTP başlığında gönderir.

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.
};