वेब ऐप्लिकेशन में App Check की मदद से, Firebase से बाहर के संसाधनों को सुरक्षित रखना

Firebase को छोड़कर, अपने ऐप्लिकेशन के संसाधनों को सुरक्षित रखा जा सकता है. उदाहरण के लिए, खुद होस्ट किए गए बैकएंड, App Check के साथ. ऐसा करने के लिए, आपको ये दोनों काम करने होंगे:

  • हर अनुरोध के साथ App Check टोकन भेजने के लिए, अपने ऐप्लिकेशन क्लाइंट में बदलाव करें अपने बैकएंड के लिए उपलब्ध है, जैसा कि इस पृष्ठ पर बताया गया है.
  • अपने बैकएंड में बदलाव करें, ताकि हर अनुरोध के साथ एक मान्य App Check टोकन ज़रूरी हो. जैसा कि किसी कस्टम बैकएंड से App Check टोकन की पुष्टि करें में बताया गया है.

शुरू करने से पहले

इनमें से किसी एक का इस्तेमाल करके, App Check को अपने ऐप्लिकेशन में जोड़ें re कैप्चा एंटरप्राइज़ प्रोवाइडर या पसंद के मुताबिक सेवा देने वाली कंपनी.

बैकएंड अनुरोधों के साथ App Check टोकन भेजें

अपने ऐप्लिकेशन क्लाइंट में, हर अनुरोध से पहले, एक मान्य App Check कोड पाएं जिसकी समयसीमा खत्म नहीं हुई हो appCheck().getToken() के साथ टोकन. App Check लाइब्रेरी रीफ़्रेश करने के लिए, टोकन का उपयोग करें.

आपको मान्य टोकन मिलने के बाद, उसे अपने बैकएंड पर अनुरोध के साथ भेजें. कॉन्टेंट बनाने यह आप पर निर्भर करता है कि आप इसे कैसे पूरा करते हैं, लेकिन यूआरएल के हिस्से के तौर पर App Check टोकन. इसमें क्वेरी पैरामीटर भी शामिल हैं. इनके अलावा, इनमें गलती से होने वाले लीक और इंटरसेप्शन का खतरा ज़्यादा होता है. नीचे दिए गए उदाहरण के लिए, कस्टम एचटीटीपी हेडर में टोकन भेजा गया है. हमारा सुझाव है कि अप्रोच का इस्तेमाल करें.

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

रीप्ले प्रोटेक्शन (बीटा वर्शन)

किसी ऐसे एंडपॉइंट को अनुरोध करते समय जिसके लिए आपने अनुरोध किया है फिर से चलाने पर मिलने वाली सुरक्षा, getToken() के बजाय, getLimitedUseToken() का इस्तेमाल करके टोकन हासिल करना:

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

// ...

appCheckTokenResponse = await getLimitedUseToken(appCheck);