ওয়েব অ্যাপে অ্যাপ চেক-এর মাধ্যমে অ-ফায়ারবেস সংস্থানগুলিকে সুরক্ষিত করুন

আপনি অ্যাপ চেকের মাধ্যমে আপনার অ্যাপের নন-ফায়ারবেস সংস্থানগুলি যেমন স্ব-হোস্টেড ব্যাকএন্ডগুলি রক্ষা করতে পারেন৷ এটি করার জন্য, আপনাকে নিম্নলিখিত উভয়টি করতে হবে:

তুমি শুরু করার আগে

reCAPTCHA এন্টারপ্রাইজ প্রদানকারী বা একটি কাস্টম প্রদানকারী ব্যবহার করে আপনার অ্যাপে অ্যাপ চেক যোগ করুন।

ব্যাকএন্ড অনুরোধ সহ অ্যাপ চেক টোকেন পাঠান

আপনার অ্যাপ ক্লায়েন্টে, প্রতিটি অনুরোধের আগে, appCheck().getToken() সহ একটি বৈধ, মেয়াদ শেষ না হওয়া অ্যাপ চেক টোকেন পান। অ্যাপ চেক লাইব্রেরি প্রয়োজনে টোকেন রিফ্রেশ করবে।

একবার আপনার কাছে একটি বৈধ টোকেন হয়ে গেলে, আপনার ব্যাকএন্ডে অনুরোধ সহ এটি পাঠান। আপনি কীভাবে এটি সম্পন্ন করবেন তার সুনির্দিষ্ট বিষয়গুলি আপনার উপর নির্ভর করে, কিন্তু ক্যোয়ারী প্যারামিটার সহ URL-এর অংশ হিসাবে অ্যাপ চেক টোকেন পাঠাবেন না , কারণ এটি তাদের দুর্ঘটনাজনিত ফাঁস এবং বাধার জন্য ঝুঁকিপূর্ণ করে তোলে। নিম্নলিখিত উদাহরণটি একটি কাস্টম HTTP শিরোনামে টোকেন পাঠায়, যা প্রস্তাবিত পদ্ধতি।

Web modular API

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 namespaced API

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);