এই পৃষ্ঠাটি আপনাকে দেখাবে কিভাবে ডিফল্ট প্রোভাইডারগুলো ব্যবহার করে একটি ফ্লাটার অ্যাপে অ্যাপ চেক (App Check) চালু করতে হয়: অ্যান্ড্রয়েডের জন্য প্লে ইন্টিগ্রিটি (Play Integrity), অ্যাপল প্ল্যাটফর্মের জন্য ডিভাইস চেক (Device Check), এবং ওয়েবের জন্য রিক্যাপচা ভি৩ (reCAPTCHA v3)। যখন আপনি অ্যাপ চেক চালু করেন, তখন এটি নিশ্চিত করতে সাহায্য হয় যে শুধুমাত্র আপনার অ্যাপই আপনার প্রোজেক্টের ফায়ারবেস রিসোর্সগুলো অ্যাক্সেস করতে পারবে। এই ফিচারটির একটি ওভারভিউ দেখুন।
১. আপনার ফায়ারবেস প্রজেক্ট সেট আপ করুন।
যদি আগে থেকে FlutterFire ইনস্টল ও চালু না করে থাকেন, তবে তা করে নিন।
Firebase কনসোলের Project Settings > App Check বিভাগে Play Integrity, Device Check, এবং reCAPTCHA প্রোভাইডারদের সাথে App Check ব্যবহার করার জন্য আপনার অ্যাপগুলিকে রেজিস্টার করুন।
সাধারণত আপনার প্রোজেক্টের সমস্ত অ্যাপ রেজিস্টার করতে হয়, কারণ একবার আপনি কোনো ফায়ারবেস প্রোডাক্টের জন্য এনফোর্সমেন্ট চালু করলে, শুধুমাত্র রেজিস্টার করা অ্যাপগুলোই সেই প্রোডাক্টের ব্যাকএন্ড রিসোর্স অ্যাক্সেস করতে পারবে।
ঐচ্ছিক : অ্যাপ রেজিস্ট্রেশন সেটিংসে, প্রোভাইডার কর্তৃক ইস্যুকৃত অ্যাপ চেক টোকেনগুলোর জন্য একটি কাস্টম টাইম-টু-লিভ (TTL) সেট করুন। আপনি TTL-এর মান ৩০ মিনিট থেকে ৭ দিনের মধ্যে যেকোনো একটিতে সেট করতে পারেন। এই মান পরিবর্তন করার সময়, নিম্নলিখিত সীমাবদ্ধতাগুলো সম্পর্কে সচেতন থাকুন:
- নিরাপত্তা: কম TTL (টাইম টু লাইফ) আরও শক্তিশালী নিরাপত্তা প্রদান করে, কারণ এটি সেই সুযোগ কমিয়ে দেয় যার মধ্যে কোনো ফাঁস হওয়া বা হস্তগত টোকেন আক্রমণকারী দ্বারা অপব্যবহার করা যেতে পারে।
- পারফরম্যান্স: কম TTL-এর অর্থ হলো আপনার অ্যাপকে আরও ঘন ঘন অ্যাটেস্টেশন করতে হবে। যেহেতু অ্যাপ অ্যাটেস্টেশন প্রক্রিয়াটি প্রতিবার সম্পন্ন হওয়ার সময় নেটওয়ার্ক অনুরোধে লেটেন্সি যোগ করে, তাই একটি কম TTL আপনার অ্যাপের পারফরম্যান্সকে প্রভাবিত করতে পারে।
- কোটা ও খরচ: স্বল্প মেয়াদের টিটিএল (TTL) এবং ঘন ঘন পুনঃ-প্রত্যয়ন আপনার কোটা দ্রুত শেষ করে দেয়, এবং অর্থপ্রদত্ত পরিষেবার ক্ষেত্রে খরচ সম্ভাব্যভাবে বেশি হতে পারে। কোটা ও সীমা দেখুন।
বেশিরভাগ অ্যাপের জন্য ডিফল্ট TTL যুক্তিসঙ্গত। উল্লেখ্য যে, অ্যাপ চেক লাইব্রেরি TTL মেয়াদের প্রায় অর্ধেক সময়ে টোকেন রিফ্রেশ করে।
২. আপনার অ্যাপে অ্যাপ চেক লাইব্রেরিটি যুক্ত করুন
আপনার ফ্লাটার প্রজেক্টের রুট থেকে প্লাগইনটি ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:
flutter pub add firebase_app_checkএকবার সম্পন্ন হলে, আপনার ফ্লাটার অ্যাপ্লিকেশনটি পুনর্নির্মাণ করুন:
flutter run
৩. অ্যাপ চেক শুরু করুন
আপনার অ্যাপে নিম্নলিখিত ইনিশিয়ালাইজেশন কোডটি যোগ করুন, যাতে এটি স্টোরেজের মতো যেকোনো ফায়ারবেস পরিষেবা ব্যবহার করার আগে, কিন্তু Firebase.initializeApp() কল করার পরে রান করে।
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate(
// You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
// argument for `webProvider`
webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
// Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Safety Net provider
// 3. Play Integrity provider
androidProvider: AndroidProvider.debug,
// Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Device Check provider
// 3. App Attest provider
// 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
appleProvider: AppleProvider.appAttest,
);
runApp(App());
}
পরবর্তী পদক্ষেপ
আপনার অ্যাপে অ্যাপ চেক লাইব্রেরিটি ইনস্টল হয়ে গেলে, ব্যবহারকারীদের কাছে আপডেট করা অ্যাপটি বিতরণ করা শুরু করুন।
আপডেট করা ক্লায়েন্ট অ্যাপটি ফায়ারবেসে করা প্রতিটি অনুরোধের সাথে অ্যাপ চেক টোকেন পাঠানো শুরু করবে, কিন্তু ফায়ারবেস কনসোলের অ্যাপ চেক বিভাগে আপনি এনফোর্সমেন্ট সক্রিয় না করা পর্যন্ত ফায়ারবেস প্রোডাক্টগুলোর জন্য টোকেনগুলো বৈধ থাকার প্রয়োজন হবে না।
মেট্রিক নিরীক্ষণ করুন এবং প্রয়োগ সক্ষম করুন
তবে, এনফোর্সমেন্ট চালু করার আগে আপনার নিশ্চিত হয়ে নেওয়া উচিত যে, এর ফলে আপনার বিদ্যমান বৈধ ব্যবহারকারীদের কোনো অসুবিধা হবে না। অন্যদিকে, যদি আপনি আপনার অ্যাপের রিসোর্সের সন্দেহজনক ব্যবহার দেখতে পান, তাহলে আপনি আরও দ্রুত এনফোর্সমেন্ট চালু করতে চাইতে পারেন।
এই সিদ্ধান্ত নিতে সাহায্য করার জন্য, আপনি আপনার ব্যবহৃত পরিষেবাগুলোর অ্যাপ চেক মেট্রিক্স দেখতে পারেন:
- রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর, ক্লাউড স্টোরেজ এবং অথেনটিকেশনের জন্য অ্যাপ চেক অনুরোধের মেট্রিক্স নিরীক্ষণ করুন ।
- ক্লাউড ফাংশনগুলির জন্য অ্যাপ চেক অনুরোধের মেট্রিক্স নিরীক্ষণ করুন ।
অ্যাপ চেক প্রয়োগ সক্ষম করুন
যখন আপনি বুঝতে পারবেন অ্যাপ চেক আপনার ব্যবহারকারীদের কীভাবে প্রভাবিত করবে এবং আপনি এগিয়ে যেতে প্রস্তুত হবেন, তখন আপনি অ্যাপ চেক এনফোর্সমেন্ট সক্রিয় করতে পারেন:
- রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর, ক্লাউড স্টোরেজ এবং অথেনটিকেশনের জন্য অ্যাপ চেক প্রয়োগ সক্রিয় করুন ।
- ক্লাউড ফাংশনগুলির জন্য অ্যাপ চেক প্রয়োগ সক্ষম করুন ।
ডিবাগ পরিবেশে অ্যাপ চেক ব্যবহার করুন
অ্যাপ চেক-এর জন্য আপনার অ্যাপটি নিবন্ধন করার পর, যদি আপনি এমন কোনো পরিবেশে আপনার অ্যাপটি চালাতে চান যা অ্যাপ চেক সাধারণত বৈধ বলে গণ্য করে না, যেমন ডেভেলপমেন্টের সময় কোনো এমুলেটর থেকে, অথবা কোনো কন্টিনিউয়াস ইন্টিগ্রেশন (CI) পরিবেশ থেকে, তাহলে আপনি একটি আসল অ্যাটেস্টেশন প্রোভাইডারের পরিবর্তে অ্যাপ চেক ডিবাগ প্রোভাইডার ব্যবহার করে আপনার অ্যাপের একটি ডিবাগ বিল্ড তৈরি করতে পারেন।
ফ্লাটার অ্যাপে ডিবাগ প্রোভাইডারের সাথে অ্যাপ চেক-এর ব্যবহার দেখুন।