Apple প্ল্যাটফর্মগুলিতে একটি কাস্টম প্রদানকারীর সাথে অ্যাপ চেক সক্ষম করুন৷

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

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

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

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

  1. আপনার প্রকল্পের Podfile অ্যাপ চেকের জন্য নির্ভরতা যোগ করুন:

    pod 'FirebaseAppCheck'

    অথবা, বিকল্পভাবে, আপনি পরিবর্তে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করতে পারেন।

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

  2. pod install চালান এবং তৈরি .xcworkspace ফাইলটি খুলুন।

2. অ্যাপ চেক প্রোটোকল প্রয়োগ করুন

প্রথমত, আপনাকে এমন ক্লাস তৈরি করতে হবে যা AppCheckProvider এবং AppCheckProviderFactory প্রোটোকল বাস্তবায়ন করে।

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

সুইফট

class YourCustomAppCheckProvider: NSObject, AppCheckProvider {
    var app: FirebaseApp

    init(withFirebaseApp app: FirebaseApp) {
        self.app = app
        super.init()
    }

    func getToken(completion handler: @escaping (AppCheckToken?, Error?) -> Void) {
        DispatchQueue.main.async {
            // Logic to exchange proof of authenticity for an App Check token.
            // ...

            // Create AppCheckToken object.
            let exp = Date(timeIntervalSince1970: expirationFromServer)
            let token = AppCheckToken(
                token: tokenFromServer,
                expirationDate: exp
            )

            // Pass the token or error to the completion handler.
            handler(token, nil)
        }
    }
}

উদ্দেশ্য গ

@interface YourCustomAppCheckProvider : NSObject <FIRAppCheckProvider>

@property FIRApp *app;

- (id)initWithApp:(FIRApp *)app;

@end

@implementation YourCustomAppCheckProvider

- (id)initWithApp:app {
    self = [super init];
    if (self) {
        self.app = app;
    }
    return self;
}

- (void)getTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken * _Nullable,
                                                 NSError * _Nullable))handler {
    dispatch_async(dispatch_get_main_queue(), ^{
        // Logic to exchange proof of authenticity for an App Check token.
        // ...

        // Create FIRAppCheckToken object.
        NSTimeInterval exp = expirationFromServer;
        FIRAppCheckToken *token
            = [[FIRAppCheckToken alloc] initWithToken:tokenFromServer
                                       expirationDate:[NSDate dateWithTimeIntervalSince1970:exp]];

        // Pass the token or error to the completion handler.
        handler(token, nil);
    });
}

@end

এছাড়াও, একটি AppCheckProviderFactory ক্লাস প্রয়োগ করুন যা আপনার AppCheckProvider বাস্তবায়নের উদাহরণ তৈরি করে:

সুইফট

class YourCustomAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return YourCustomAppCheckProvider(withFirebaseApp: app)
  }
}

উদ্দেশ্য গ

@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourCustomAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app {
    return [[YourCustomAppCheckProvider alloc] initWithApp:app];
}

@end

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

আপনার অ্যাপ ডেলিগেট বা অ্যাপ ইনিশিয়েলাইজারে নিম্নলিখিত সূচনা কোড যোগ করুন:

সুইফট

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

উদ্দেশ্য গ

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

একবার আপনার অ্যাপে অ্যাপ চেক লাইব্রেরি ইনস্টল হয়ে গেলে, আপডেট করা অ্যাপটি আপনার ব্যবহারকারীদের কাছে বিতরণ করা শুরু করুন।

আপডেট হওয়া ক্লায়েন্ট অ্যাপটি 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. এনফোর্সমেন্ট সক্ষম করুন

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

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

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

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

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

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

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

ক্লাউড ফাংশন

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