App Check বেশ কয়েকটি প্রোভাইডারে বিল্ট-ইন সাপোর্ট রয়েছে: অ্যাপল প্ল্যাটফর্মে ডিভাইসচেক এবং অ্যাপ অ্যাটেস্ট, অ্যান্ড্রয়েডে প্লে ইন্টিগ্রিটি এবং ওয়েব অ্যাপে reCAPTCHA এন্টারপ্রাইজ ( ওভারভিউ )। এগুলি সুপরিচিত প্রোভাইডার যা বেশিরভাগ ডেভেলপারের চাহিদা পূরণ করে। তবে, আপনি আপনার নিজস্ব কাস্টম App Check প্রোভাইডারও বাস্তবায়ন করতে পারেন। একটি কাস্টম প্রোভাইডার ব্যবহার করা প্রয়োজন যখন:
আপনি বিল্ট-ইন প্রোভাইডার ছাড়া অন্য কোনও প্রোভাইডার ব্যবহার করতে চান।
আপনি অসমর্থিত উপায়ে বিল্ট-ইন প্রোভাইডার ব্যবহার করতে চান।
আপনি অ্যাপল, অ্যান্ড্রয়েড এবং ওয়েব ছাড়া অন্য প্ল্যাটফর্ম ব্যবহার করে ডিভাইসগুলি যাচাই করতে চান। উদাহরণস্বরূপ, আপনি ডেস্কটপ অপারেটিং সিস্টেম বা ইন্টারনেট-অফ-থিংস ডিভাইসের জন্য App Check প্রদানকারী তৈরি করতে পারেন।
আপনি যেকোনো প্ল্যাটফর্মে আপনার নিজস্ব যাচাইকরণ কৌশল বাস্তবায়ন করতে চান।
সংক্ষিপ্ত বিবরণ
একটি কাস্টম App Check প্রোভাইডার বাস্তবায়নের জন্য, আপনার একটি নিরাপদ ব্যাকএন্ড পরিবেশ প্রয়োজন যা Node.js Firebase Admin SDK চালাতে পারে। এটি Cloud Functions , Cloud Run এর মতো একটি কন্টেইনার প্ল্যাটফর্ম, অথবা আপনার নিজস্ব সার্ভার হতে পারে।
এই পরিবেশ থেকে, আপনি একটি নেটওয়ার্ক-অ্যাক্সেসযোগ্য পরিষেবা প্রদান করবেন যা আপনার অ্যাপ ক্লায়েন্টদের কাছ থেকে সত্যতার প্রমাণ পাবে এবং - যদি সত্যতার প্রমাণ আপনার সত্যতা মূল্যায়নে উত্তীর্ণ হয় - তাহলে একটি App Check টোকেন প্রদান করবে। সত্যতার প্রমাণ হিসাবে আপনি যে নির্দিষ্ট সূচকগুলি ব্যবহার করবেন তা আপনার ব্যবহৃত তৃতীয়-পক্ষ সরবরাহকারীর উপর নির্ভর করবে, অথবা আপনি যদি কাস্টম লজিক বাস্তবায়ন করেন তবে আপনার নিজস্ব আবিষ্কারের সূচকগুলির উপর নির্ভর করবে।
সাধারণত, আপনি এই পরিষেবাটিকে একটি REST বা gRPC এন্ডপয়েন্ট হিসেবে প্রকাশ করেন, কিন্তু এই বিশদটি আপনার উপর নির্ভর করে।
টোকেন অধিগ্রহণের শেষ বিন্দু তৈরি করুন
একটি নেটওয়ার্ক-অ্যাক্সেসযোগ্য এন্ডপয়েন্ট তৈরি করুন যা আপনার ক্লায়েন্টদের কাছ থেকে সত্যতা তথ্য গ্রহণ করতে পারে। উদাহরণস্বরূপ, Cloud Functions ব্যবহার করে:
// Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken exports.fetchAppCheckToken = functions.https.onRequest((request, response) => { // ... });তথ্যের সত্যতা মূল্যায়নের জন্য এন্ডপয়েন্ট লজিক যোগ করুন। এটি আপনার কাস্টম App Check প্রদানকারীর মূল লজিক, যা আপনাকে নিজেই লিখতে হবে।
যদি আপনি ক্লায়েন্টটিকে খাঁটি বলে নির্ধারণ করেন, তাহলে Admin SDK ব্যবহার করে একটি App Check টোকেন মিন্ট করুন এবং এটি এবং এর মেয়াদ শেষ হওয়ার সময় ক্লায়েন্টকে ফেরত দিন:
const admin = require('firebase-admin'); admin.initializeApp(); // ... admin.appCheck().createToken(appId) .then(function (appCheckToken) { // Token expires in an hour. const expiresAt = Math.floor(Date.now() / 1000) + 60 * 60; // Return appCheckToken and expiresAt to the client. }) .catch(function (err) { console.error('Unable to create App Check token.'); console.error(err); });যদি আপনি ক্লায়েন্টের সত্যতা যাচাই করতে না পারেন, তাহলে একটি ত্রুটি ফেরত দিন (উদাহরণস্বরূপ, একটি HTTP 403 ত্রুটি ফেরত দিন)।
ঐচ্ছিক : আপনার কাস্টম প্রদানকারী কর্তৃক ইস্যু করা App Check টোকেনের জন্য টাইম-টু-লাইভ (TTL) সেট করুন, একটি
AppCheckTokenOptionsঅবজেক্টcreateToken()এ পাস করে। আপনি TTL কে 30 মিনিট থেকে 7 দিনের মধ্যে যেকোনো মান সেট করতে পারেন। এই মান সেট করার সময়, নিম্নলিখিত ট্রেডঅফগুলি সম্পর্কে সচেতন থাকুন:- নিরাপত্তা: ছোট TTL গুলি শক্তিশালী নিরাপত্তা প্রদান করে, কারণ এটি সেই উইন্ডোটি হ্রাস করে যেখানে কোনও ফাঁস হওয়া বা আটকানো টোকেন আক্রমণকারী দ্বারা অপব্যবহার করা যেতে পারে।
- পারফরম্যান্স: ছোট TTL মানে আপনার অ্যাপ আরও ঘন ঘন অ্যাটেস্টেশন করবে। যেহেতু অ্যাপ অ্যাটেস্টেশন প্রক্রিয়াটি প্রতিবার সম্পাদিত হওয়ার সময় নেটওয়ার্ক অনুরোধগুলিতে ল্যাটেন্সি যোগ করে, তাই একটি ছোট TTL আপনার অ্যাপের কর্মক্ষমতাকে প্রভাবিত করতে পারে।
বেশিরভাগ অ্যাপের জন্য ১ ঘন্টার ডিফল্ট TTL যুক্তিসঙ্গত।
পরবর্তী পদক্ষেপ
এখন আপনি আপনার কাস্টম প্রোভাইডার এর সার্ভার-সাইড লজিক বাস্তবায়ন করেছেন, আপনার অ্যাপল , অ্যান্ড্রয়েড এবং ওয়েব ক্লায়েন্ট থেকে এটি কীভাবে ব্যবহার করবেন তা শিখুন।