Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

যখন আপনি বুঝতে পারেন যে কীভাবে অ্যাপ চেক আপনার ব্যবহারকারীদের প্রভাবিত করবে এবং আপনি এগিয়ে যাওয়ার জন্য প্রস্তুত, আপনি অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করতে পারেন।

এনফোর্সমেন্ট সক্রিয় করা হচ্ছে

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

  1. ক্লাউড ফাংশন SDK ইনস্টল করুন।

    Node.js (1ম প্রজন্ম)

    আপনার প্রকল্পের firebase-functions নির্ভরতা সংস্করণ 4.0.0 বা নতুন সংস্করণে আপডেট করুন:

    npm install firebase-functions@">=4.0.0"
    

    Node.js (২য় প্রজন্ম)

    আপনার প্রকল্পের firebase-functions নির্ভরতা সংস্করণ 4.0.0 বা নতুন সংস্করণে আপডেট করুন:

    npm install firebase-functions@">=4.0.0"
    

    পাইথন (প্রিভিউ)

    functions/requirements.txtfirebase-functions যোগ করুন :

    firebase-functions >= 0.1.0
    

    তারপর, আপনার প্রকল্পের ভার্চুয়াল পরিবেশে নির্ভরতা আপডেট করুন:

    ./venv/bin/pip install -r requirements.txt
    
  2. আপনার ফাংশনের জন্য অ্যাপ চেক এনফোর্সমেন্ট রানটাইম বিকল্পটি সক্ষম করুন:

    Node.js (1ম প্রজন্ম)

    const functions = require("firebase-functions/v1");
    
    exports.yourV1CallableFunction = functions
      .runWith({
          enforceAppCheck: true, // Reject requests with missing or invalid App Check tokens.
      })
      .https.onCall((data, context) => {
            // context.app contains data from App Check, including the app ID.
            // Your function logic follows.
            ...
      });
    

    Node.js (২য় প্রজন্ম)

    const { onCall } = require("firebase-functions/v2/https");
    
    exports.yourV2CallableFunction = onCall(
      {
        enforceAppCheck: true, // Reject requests with missing or invalid App Check tokens.
      },
      (request) => {
        // request.app contains data from App Check, including the app ID.
        // Your function logic follows.
        ...
      }
    );
    

    পাইথন (প্রিভিউ)

    from firebase_functions import https_fn
    
    @https_fn.on_call(
        enforce_app_check=True  # Reject requests with missing or invalid App Check tokens.
    )
    def your_callable_function(req: https_fn.CallableRequest) -> https_fn.Response:
        # req.app contains data from App Check, including the app ID.
        # Your function logic follows.
        ...
    
  3. আপনার ফাংশন পুনরায় স্থাপন করুন:

    firebase deploy --only functions
    

একবার এই পরিবর্তনগুলি স্থাপন করা হলে, আপনার কলযোগ্য ক্লাউড ফাংশনগুলির জন্য বৈধ অ্যাপ চেক টোকেনগুলির প্রয়োজন হবে৷ ক্লাউড ফাংশন ক্লায়েন্ট SDK স্বয়ংক্রিয়ভাবে একটি অ্যাপ চেক টোকেন সংযুক্ত করে যখন আপনি একটি কলযোগ্য ফাংশন চালু করেন।

রিপ্লে সুরক্ষা (বিটা)

রিপ্লে আক্রমণ থেকে একটি কলযোগ্য ফাংশন রক্ষা করতে, আপনি এটি যাচাই করার পরে অ্যাপ চেক টোকেন ব্যবহার করতে পারেন। একবার টোকেনটি গ্রহণ করা হলে, এটি আর ব্যবহার করা যাবে না।

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

টোকেন ব্যবহার করতে, আপনার ফাংশন সংজ্ঞাতে consumeAppCheckToken কে true হিসাবে সেট করুন:

Node.js (1ম প্রজন্ম)

const functions = require("firebase-functions/v1");

exports.yourV1CallableFunction = functions
  .runWith({
      enforceAppCheck: true, // Reject requests with missing or invalid App Check tokens.
      consumeAppCheckToken: true  // Consume the token after verification.
  })
  .https.onCall((data, context) => {
      // context.app contains data from App Check, including the app ID.
      // Your function logic follows.
      ...
  });

Node.js (২য় প্রজন্ম)

const { onCall } = require("firebase-functions/v2/https");

exports.yourV2CallableFunction = onCall(
  {
    enforceAppCheck: true, // Reject requests with missing or invalid App Check tokens.
    consumeAppCheckToken: true  // Consume the token after verification.
  },
  (request) => {
    // request.app contains data from App Check, including the app ID.
    // Your function logic follows.
    ...
  }
);

আপনি যখন একটি নির্দিষ্ট ক্লাউড ফাংশনের জন্য এই বৈশিষ্ট্যটি সক্ষম করবেন, তখন আপনি যখন ফাংশনটি কল করবেন তখন আপনাকে অবশ্যই আপনার অ্যাপ ক্লায়েন্ট কোড আপডেট করতে হবে যাতে উপভোগযোগ্য সীমিত-ব্যবহারের টোকেনগুলি অর্জন করা যায়:

সুইফট

let options = HTTPSCallableOptions(requireLimitedUseAppCheckTokens: true)
let yourCallableFunction =
    Functions.functions().httpsCallable("yourCallableFunction", options: options)
do {
    let result = try await yourCallableFunction.call()
} catch {
    // ...
}

Web modular API

import { getFunctions, httpsCallable } from "firebase/functions";

const yourCallableFunction = httpsCallable(
  getFunctions(),
  "yourCallableFunction",
  { limitedUseAppCheckTokens: true },
);
await yourCallableFunction();

Kotlin+KTX

val yourCallableFunction = Firebase.functions.getHttpsCallable("yourCallableFunction") {
    limitedUseAppCheckTokens = true
}
val result = yourCallableFunction.call().await()

Java

HttpsCallableReference yourCallableFunction = FirebaseFunctions.getInstance().getHttpsCallable(
        "yourCallableFunction",
        new HttpsCallableOptions.Builder()
                .setLimitedUseAppCheckTokens(true)
                .build()
);
Task<HttpsCallableResult> result = yourCallableFunction.call();