حماية موارد الخلفية المخصّصة باستخدام ميزة "فحص التطبيقات" في تطبيقات الويب

يمكنك استخدام App Check لحماية موارد الخلفية المخصّصة غير التابعة لـ Google لتطبيقك، مثل الخلفية المستضافة ذاتيًا. لإجراء ذلك، عليك تنفيذ ما يلي:

قبل البدء

أضِف App Check إلى تطبيقك باستخدام مقدّم خدمة reCAPTCHA Enterprise أو مقدّم خدمة مخصّص.

إرسال رموز App Check مع طلبات الخلفية

في تطبيق العميل، احصل على رمز مميّز صالح وغير منتهية صلاحيته App Check مع appCheck().getToken() قبل كل طلب. ستجدّد مكتبة App Check الرمز المميز عند الضرورة.

بعد الحصول على رمز مميّز صالح، أرسِله مع الطلب إلى الخلفية. يعود إليك تحديد التفاصيل المتعلقة بكيفية تنفيذ ذلك، ولكن لا ترسِل رموز App Check كجزء من عناوين URL، بما في ذلك في مَعلمات طلب البحث، لأنّ ذلك يعرّضها لخطر التسريب والاختراق غير المقصودَين. يرسل المثال التالي الرمز المميّز في عنوان HTTP مخصّص، وهو الأسلوب الذي ننصح به.

Web

import { initializeAppCheck, getToken } from '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

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

حماية إعادة التشغيل (إصدار تجريبي)

عند إرسال طلب إلى نقطة نهاية فعّلت فيها الحماية من إعادة التشغيل، احصل على رمز مميّز باستخدام getLimitedUseToken() بدلاً من getToken():

import { getLimitedUseToken } from "firebase/app-check";

// ...

appCheckTokenResponse = await getLimitedUseToken(appCheck);