Apple প্ল্যাটফর্মে কাস্টম প্রদানকারীর সাথে App Check ব্যবহার করা শুরু করা

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

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

শুরু করার আগে

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

  1. Firebase-এর নির্ভরতা ইনস্টল ও ম্যানেজ করতে Swift Package Manager ব্যবহার করুন।

    Xcode-এ, আপনার অ্যাপ প্রোজেক্ট খোলা থাকা অবস্থায়, ফাইল > প্যাকেজ যোগ করুন বিকল্পে নেভিগেট করুন, Firebase Apple প্ল্যাটফর্ম SDK রিপোজিটরি যোগ করুন (https://github.com/firebase/firebase-ios-sdk) এবং FirebaseAppCheck লাইব্রেরি বেছে নিন।

২. App Check প্রোটোকল প্রয়োগ করা

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

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

Swift

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
  }

}

Objective-C

@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 প্রয়োগের ইনস্ট্যান্স তৈরি করে:

Swift

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

Objective-C

@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourCustomAppCheckProviderFactory

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

@end

৩. App Check চালু করুন

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

Swift

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

FirebaseApp.configure()

Objective-C

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 ডিবাগ প্রদানকারী ব্যবহার করে।

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