ওয়েব অ্যাপে একটি কাস্টম প্রদানকারীর সাথে অ্যাপ চেক সক্ষম করুন

এই পৃষ্ঠাটি আপনাকে দেখায় কিভাবে আপনার কাস্টম অ্যাপ চেক প্রদানকারী ব্যবহার করে একটি ওয়েব অ্যাপে অ্যাপ চেক সক্ষম করবেন। আপনি যখন অ্যাপ চেক সক্ষম করেন, তখন আপনি নিশ্চিত করতে সাহায্য করেন যে শুধুমাত্র আপনার অ্যাপ আপনার প্রকল্পের ফায়ারবেস সংস্থান অ্যাক্সেস করতে পারে।

আপনি যদি বিল্ট-ইন প্রদানকারীর একটির সাথে অ্যাপ চেক ব্যবহার করতে চান, তাহলে reCAPTCHA v3 এর সাথে অ্যাপ চেক এবং reCAPTCHA এন্টারপ্রাইজের সাথে অ্যাপ চেক-এর ডক্স দেখুন।

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

1. আপনার অ্যাপে অ্যাপ চেক লাইব্রেরি যোগ করুন

আপনার ওয়েব অ্যাপে Firebase যোগ করুন যদি আপনি আগে থেকে না থাকেন। অ্যাপ চেক লাইব্রেরি আমদানি করতে ভুলবেন না।

2. অ্যাপ চেক প্রদানকারী বস্তু তৈরি করুন

আপনার কাস্টম প্রদানকারীর জন্য একটি অ্যাপ চেক প্রদানকারী বস্তু তৈরি করুন। এই অবজেক্টের অবশ্যই একটি getToken() পদ্ধতি থাকতে হবে, যা সত্যতার প্রমাণ হিসাবে আপনার কাস্টম অ্যাপ চেক প্রদানকারীর প্রয়োজনীয় তথ্য সংগ্রহ করে এবং একটি অ্যাপ চেক টোকেনের বিনিময়ে আপনার টোকেন অধিগ্রহণ পরিষেবাতে পাঠায়। অ্যাপ চেক SDK টোকেন ক্যাশিং পরিচালনা করে, তাই আপনার getToken() বাস্তবায়নে সর্বদা একটি নতুন টোকেন পান।

Web version 9

const { CustomProvider } = require("firebase/app-check");

const appCheckCustomProvider = new CustomProvider({
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
});

Web version 8

const appCheckCustomProvider = {
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
};

3. অ্যাপ চেক শুরু করুন

ফায়ারবেস পরিষেবাগুলি অ্যাক্সেস করার আগে আপনার অ্যাপ্লিকেশনে নিম্নলিখিত প্রাথমিক কোড যোগ করুন:

Web version 9

const { initializeApp } = require("firebase/app");
const { initializeAppCheck } = require("firebase/app-check");

const app = initializeApp({
  // Your firebase configuration object
});

const appCheck = initializeAppCheck(app, {
  provider: appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true    
});

Web version 8

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
appCheck.activate(
  appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

একবার আপনার অ্যাপে অ্যাপ চেক লাইব্রেরি ইনস্টল হয়ে গেলে, এটি স্থাপন করুন।

আপডেট হওয়া ক্লায়েন্ট অ্যাপটি Firebase-এ করা প্রতিটি অনুরোধের সাথে অ্যাপ চেক টোকেন পাঠানো শুরু করবে, কিন্তু Firebase পণ্যগুলির টোকেন বৈধ হওয়ার প্রয়োজন হবে না যতক্ষণ না আপনি Firebase কনসোলের অ্যাপ চেক বিভাগে এনফোর্সমেন্ট চালু করছেন। বিস্তারিত জানার জন্য পরবর্তী দুটি বিভাগ দেখুন।

4. অনুরোধের মেট্রিক্স মনিটর করুন

এখন যেহেতু আপনার আপডেট করা অ্যাপটি ব্যবহারকারীদের হাতে রয়েছে, আপনি যে ফায়ারবেস পণ্যগুলি ব্যবহার করেন তার জন্য অ্যাপ চেকের প্রয়োগ সক্ষম করতে পারেন৷ আপনি এটি করার আগে, তবে, আপনাকে নিশ্চিত করতে হবে যে এটি করা আপনার বিদ্যমান বৈধ ব্যবহারকারীদের ব্যাহত করবে না।

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজ

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজের জন্য এই সিদ্ধান্ত নিতে আপনি একটি গুরুত্বপূর্ণ টুল ব্যবহার করতে পারেন তা হল অ্যাপ চেক অনুরোধ মেট্রিক্স স্ক্রীন।

একটি পণ্যের জন্য অ্যাপ চেক অনুরোধের মেট্রিক্স দেখতে, Firebase কনসোলের অ্যাপ চেক বিভাগটি খুলুন। উদাহরণ স্বরূপ:

অ্যাপ চেক মেট্রিক্স পৃষ্ঠার স্ক্রিনশট

প্রতিটি পণ্যের জন্য অনুরোধের মেট্রিক্স চারটি বিভাগে বিভক্ত:

  • যাচাইকৃত অনুরোধগুলি হল সেইগুলি যেগুলির একটি বৈধ অ্যাপ চেক টোকেন রয়েছে৷ আপনি অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করার পরে, শুধুমাত্র এই বিভাগের অনুরোধগুলি সফল হবে৷

  • পুরানো ক্লায়েন্ট অনুরোধগুলি হল সেইগুলি যেগুলির একটি অ্যাপ চেক টোকেন নেই৷ অ্যাপ চেক অ্যাপে অন্তর্ভুক্ত করার আগে এই অনুরোধগুলি Firebase SDK-এর পুরানো সংস্করণ থেকে হতে পারে।

  • অজানা মূল অনুরোধগুলি হল সেইগুলি যেগুলিতে একটি অ্যাপ চেক টোকেন নেই এবং মনে হচ্ছে না যে সেগুলি Firebase SDK থেকে এসেছে৷ এগুলি চুরি হওয়া API কীগুলির সাহায্যে করা অনুরোধ থেকে হতে পারে বা Firebase SDK ছাড়াই করা জাল অনুরোধ থেকে হতে পারে৷

  • অবৈধ অনুরোধগুলি হল সেইগুলি যেগুলির একটি অবৈধ অ্যাপ চেক টোকেন রয়েছে, যা আপনার অ্যাপের ছদ্মবেশী করার চেষ্টাকারী একটি অপ্রমাণিত ক্লায়েন্ট বা অনুকরণ করা পরিবেশ থেকে হতে পারে৷

আপনি যখন এনফোর্সমেন্ট সক্ষম করার সিদ্ধান্ত নেন তখন আপনার অ্যাপের জন্য এই বিভাগগুলির ডিস্ট্রিবিউশনকে জানানো উচিত। এখানে কিছু নির্দেশিকা আছে:

  • যদি সাম্প্রতিক অনুরোধগুলির প্রায় সবগুলিই যাচাইকৃত ক্লায়েন্টদের কাছ থেকে হয়, তাহলে আপনার ব্যাকএন্ড সংস্থানগুলিকে সুরক্ষিত করার জন্য এনফোর্সমেন্ট সক্ষম করার কথা বিবেচনা করুন৷

  • যদি সাম্প্রতিক অনুরোধগুলির একটি উল্লেখযোগ্য অংশ সম্ভবত-সেকেলে ক্লায়েন্টদের কাছ থেকে হয়, ব্যবহারকারীদের ব্যাঘাত এড়াতে, এনফোর্সমেন্ট সক্ষম করার আগে আরও ব্যবহারকারীদের আপনার অ্যাপ আপডেট করার জন্য অপেক্ষা করার কথা বিবেচনা করুন। রিলিজ করা অ্যাপে অ্যাপ চেক প্রয়োগ করার ফলে অ্যাপ চেক SDK-এর সাথে একত্রিত নয় এমন অ্যাপের আগের সংস্করণগুলি ভেঙে যাবে।

  • যদি আপনার অ্যাপটি এখনও চালু না হয়ে থাকে, তাহলে আপনাকে অবিলম্বে অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করতে হবে, যেহেতু কোনও পুরানো ক্লায়েন্ট ব্যবহারে নেই৷

ক্লাউড ফাংশন

ক্লাউড ফাংশনগুলির জন্য, আপনি আপনার ফাংশনগুলির লগগুলি পরীক্ষা করে অ্যাপ চেক মেট্রিক্স পেতে পারেন৷ একটি কলযোগ্য ফাংশনের প্রতিটি আহ্বান নিম্নলিখিত উদাহরণের মতো একটি কাঠামোবদ্ধ লগ এন্ট্রি নির্গত করে:

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

আপনি নিম্নলিখিত মেট্রিক ফিল্টার সহ একটি লগ-ভিত্তিক কাউন্টার মেট্রিক তৈরি করে Google ক্লাউড কনসোলে এই মেট্রিকগুলি বিশ্লেষণ করতে পারেন:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

jsonPayload.verifications.appCheck ফিল্ডটি ব্যবহার করে মেট্রিক লেবেল করুন

5. এনফোর্সমেন্ট সক্ষম করুন

প্রয়োগ সক্ষম করতে, প্রতিটি পণ্যের জন্য নীচের নির্দেশাবলী অনুসরণ করুন। একবার আপনি একটি পণ্যের জন্য এনফোর্সমেন্ট সক্ষম করলে, সেই পণ্যের সমস্ত অযাচাইকৃত অনুরোধ প্রত্যাখ্যান করা হবে।

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজ

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর (আইওএস এবং অ্যান্ড্রয়েড), এবং ক্লাউড স্টোরেজের জন্য এনফোর্সমেন্ট সক্ষম করতে:

  1. Firebase কনসোলের অ্যাপ চেক বিভাগটি খুলুন।

  2. আপনি যে পণ্যটির জন্য প্রয়োগ সক্ষম করতে চান তার মেট্রিক্স ভিউ প্রসারিত করুন।

  3. এনফোর্স ক্লিক করুন এবং আপনার পছন্দ নিশ্চিত করুন।

মনে রাখবেন যে এটি কার্যকর হওয়ার জন্য আপনি এনফোর্সমেন্ট সক্ষম করার পরে এটি 15 মিনিট পর্যন্ত সময় নিতে পারে৷

ক্লাউড ফাংশন

ক্লাউড ফাংশনের জন্য অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করুন দেখুন।