Apple প্ল্যাটফর্মে একটি কাস্টম প্রদানকারীর সাথে অ্যাপ চেক ব্যবহার শুরু করুন

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

আপনি যদি বিল্ট-ইন প্রোভাইডারগুলির সাথে App Check ব্যবহার করতে চান, App Check উইথ অ্যাপ অ্যাটেস্ট এবং App Check উইথ ডিভাইসচেকের জন্য ডকুমেন্টগুলি দেখুন।

শুরু করার আগে

১. আপনার অ্যাপে App Check লাইব্রেরি যোগ করুন

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

    pod 'FirebaseAppCheck'

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

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

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

2. App Check প্রোটোকল বাস্তবায়ন করুন

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

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

সুইফট

class YourCustomAppCheckProvider: NSObject, AppCheckProvider {
  var app: FirebaseApp

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

  func getToken() async throws -> AppCheckToken {
    let getTokenTask = Task { () -> AppCheckToken in
      // ...

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

      if Date() > exp {
        throw NSError(domain: "ExampleError", code: 1, userInfo: nil)
      }

      return token
    }

    return try await getTokenTask.value
  }

}

অবজেক্টিভ-সি

@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

৩. App Check শুরু করুন

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

সুইফট

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

FirebaseApp.configure()

অবজেক্টিভ-সি

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

[FIRApp configure];

পরবর্তী পদক্ষেপ

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

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

মেট্রিক্স পর্যবেক্ষণ করুন এবং প্রয়োগ সক্ষম করুন

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

এই সিদ্ধান্ত নিতে সাহায্য করার জন্য, আপনি যে পরিষেবাগুলি ব্যবহার করেন তার জন্য App Check মেট্রিক্স দেখতে পারেন:

App Check এনফোর্সমেন্ট সক্ষম করুন

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

ডিবাগ পরিবেশে App Check ব্যবহার করুন

যদি, App Check জন্য আপনার অ্যাপটি নিবন্ধিত করার পরে, আপনি এমন একটি পরিবেশে আপনার অ্যাপটি চালাতে চান যা App Check সাধারণত বৈধ হিসাবে শ্রেণীবদ্ধ করে না, যেমন ডেভেলপমেন্টের সময় একটি সিমুলেটর, অথবা একটি ক্রমাগত ইন্টিগ্রেশন (CI) পরিবেশ থেকে, তাহলে আপনি আপনার অ্যাপের একটি ডিবাগ বিল্ড তৈরি করতে পারেন যা প্রকৃত প্রত্যয়ন প্রদানকারীর পরিবর্তে App Check ডিবাগ প্রদানকারী ব্যবহার করে।

অ্যাপল প্ল্যাটফর্মে ডিবাগ প্রদানকারীর সাথে App Check ব্যবহার করুন দেখুন।