Apple প্ল্যাটফর্মে Firebase-এর মাধ্যমে পরিচয় গোপন রেখে যাচাই করা

Firebase-এর সাথে যাচাইকরণের জন্য আপনি Firebase Authentication ব্যবহার করে সাময়িক বেনামী অ্যাকাউন্ট তৈরি ও ব্যবহার করতে পারেন। এইসব সাময়িক বেনামী অ্যাকাউন্ট ব্যবহার করে যেসব ব্যবহারকারী এখনও আপনার অ্যাপে সাইন-আপ করেননি তাদের নিরাপত্তা সংক্রান্ত নিয়মের মাধ্যমে সুরক্ষিত ডেটা নিয়ে কাজ করার অনুমতি দেওয়া যেতে পারে। কোনও বেনামী ব্যবহারকারী আপনার অ্যাপে সাইন-আপ করার সিদ্ধান্ত নিলে, আপনি বেনামী অ্যাকাউন্টের সাথে তার সাইন-ইন ক্রেডেনশিয়াল লিঙ্ক করতে পারবেন যাতে তিনি ভবিষ্যতে সেশনে সুরক্ষিত ডেটা নিয়ে কাজ চালিয়ে যেতে পারেন।

শুরু করার আগে

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

    1. Xcode-এ, আপনার অ্যাপ প্রোজেক্ট খোলা থাকা অবস্থায়, ফাইল > প্যাকেজ যোগ করুন বিকল্পে নেভিগেট করুন।
    2. প্রম্পট করা হলে, Firebase Apple প্ল্যাটফর্ম SDK রিপোজিটরি যোগ করুন:
    3.   https://github.com/firebase/firebase-ios-sdk.git
    4. Firebase Authentication লাইব্রেরি বেছে নিন।
    5. আপনার টার্গেটের বিল্ড সেটিংসের অন্যান্য লিঙ্কার ফ্ল্যাগ বিভাগে -ObjC ফ্ল্যাগ যোগ করুন।
    6. এটি সম্পূর্ণ হয়ে গেলে, Xcode অটোমেটিক আপনার ডিপেন্ডেন্সি ব্যাকগ্রাউন্ডে সমাধান ও ডাউনলোড করা শুরু করবে।
  2. আপনি এখনও Firebase প্রোজেক্টের সাথে অ্যাপ কানেক্ট না করে থাকলে, এটি Firebase কনসোল থেকে করুন।
  3. পরিচয় গোপন রেখে যাচাইকরণ চালু করুন:
    1. Firebase কনসোলে গিয়ে নিরাপত্তা > যাচাইকরণ বিকল্পে যান।
    2. সাইন-ইন পদ্ধতি ট্যাবে, অনামিকা সাইন-ইন প্রদানকারী চালু করুন।
    3. ঐচ্ছিক: আপনার প্রোজেক্ট Firebase Authentication with Identity Platform-এ আপগ্রেড করে থাকলে, আপনি অটোমেটিক ক্লিন-আপ চালু করতে পারবেন। আপনি এই সেটিং চালু করলে, ৩০ দিনের বেশি পুরনো অপরিচিত অ্যাকাউন্ট অটোমেটিক মুছে যাবে। অটোমেটিক ক্লিন-আপ চালু করা প্রোজেক্টে, অ্যাননিমাস অথেন্টিকেশন আর ব্যবহারের সীমা বা বিলিং কোটার মধ্যে গণনা করা হবে না। দেখুন অটোমেটিক ক্লিন-আপ।

পরিচয় গোপন রেখে Firebase-এর মাধ্যমে যাচাইকরণ করা

সাইন-আউট করা কোনও ব্যবহারকারী Firebase-এর মাধ্যমে যাচাইকরণ প্রয়োজন এমন কোনও অ্যাপ ফিচার ব্যবহার করলে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করে ব্যবহারকারীকে বেনামে সাইন-ইন করান:

  1. আপনার FirebaseCore মডিউলটি আপনার UIApplicationDelegate-এ ইমপোর্ট করুন, সেইসাথে আপনার অ্যাপ ডেলিগেট ব্যবহার করে এমন যেকোনও Firebase মডিউল ইমপোর্ট করুন। যেমন, Cloud Firestore ও Authentication ব্যবহার করতে:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. আপনার অ্যাপ ডেলিগেটের application(_:didFinishLaunchingWithOptions:) পদ্ধতিতে FirebaseApp শেয়ার করা ইনস্ট্যান্স কনফিগার করুন:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. আপনি SwiftUI ব্যবহার করলে, আপনাকে অবশ্যই একটি অ্যাপ্লিকেশন ডেলিগেট তৈরি করতে হবে এবং এটি UIApplicationDelegateAdaptor বা NSApplicationDelegateAdaptor-এর মাধ্যমে আপনার App struct-এর সাথে অ্যাটাচ করতে হবে। এছাড়াও, আপনাকে অবশ্যই অ্যাপ ডেলিগেট সোয়েজলিং বন্ধ করতে হবে। আরও তথ্যের জন্য, SwiftUI নির্দেশাবলী দেখুন।

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. signInAnonymouslyWithCompletion: মেথড কল করুন:

    Swift

    Auth.auth().signInAnonymously { authResult, error in
      // ...
    }

    Objective-C

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
  5. signInAnonymouslyWithCompletion: পদ্ধতিটি কোনও সমস্যা ছাড়াই সম্পূর্ণ হলে, আপনি FIRAuthDataResult অবজেক্ট থেকে পরিচয় গোপন রাখা ব্যবহারকারীর অ্যাকাউন্ট ডেটা পেতে পারেন:

    Swift

    guard let user = authResult?.user else { return }
    let isAnonymous = user.isAnonymous  // true
    let uid = user.uid

    Objective-C

    FIRUser *user = authResult.user;
    BOOL isAnonymous = user.anonymous;  // YES
    NSString *uid = user.uid;

অনামonymous অ্যাকাউন্টকে স্থায়ী অ্যাকাউন্টে পরিবর্তন করা

কোনও বেনামী ব্যবহারকারী আপনার অ্যাপে সাইন-আপ করলে, আপনি হয়ত তাকে তার নতুন অ্যাকাউন্টের মাধ্যমে কাজ চালিয়ে যেতে দিতে চাইবেন—যেমন, আপনি হয়ত সাইন-আপ করার আগে ব্যবহারকারী যেসব আইটেম তার শপিং কার্টে যোগ করেছেন সেগুলি তার নতুন অ্যাকাউন্টের শপিং কার্টে উপলভ্য করতে চাইবেন। এটি করতে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:

  1. ব্যবহারকারী সাইন-আপ করলে, ব্যবহারকারীর যাচাইকরণ প্রদানকারীর জন্য সাইন-ইন ফ্লো সম্পূর্ণ করুন, তবে এর মধ্যে FIRAuth.signInWith পদ্ধতিগুলির কোনও একটিকে কল করা অন্তর্ভুক্ত নয়। যেমন, ব্যবহারকারীর Google আইডি টোকেন, Facebook অ্যাক্সেস টোকেন অথবা ইমেল আইডি ও পাসওয়ার্ড পান।
  2. নতুন যাচাইকরণ পরিষেবা প্রদানকারীর জন্য FIRAuthCredential পান:

    Google সাইন-ইন
    Swift
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    Objective-C
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString
                                     accessToken:result.user.accessToken.tokenString];
    Facebook লগ-ইন
    Swift
    let credential = FacebookAuthProvider
      .credential(withAccessToken: AccessToken.current!.tokenString)
    Objective-C
    FIRAuthCredential *credential = [FIRFacebookAuthProvider
        credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
    ইমেল-পাসওয়ার্ড দিয়ে সাইন-ইন করা
    Swift
    let credential = EmailAuthProvider.credential(withEmail: email, password: password)
    Objective-C
    FIRAuthCredential *credential =
        [FIREmailAuthProvider credentialWithEmail:email
                                                 password:password];
  3. সাইন-ইন করা ব্যবহারকারীর linkWithCredential:completion: পদ্ধতিতে FIRAuthCredential অবজেক্ট পাস করুন:

    Swift
        user.link(with: credential) { authResult, error in
      // ...
    }
    }
    Objective-C
        [[FIRAuth auth].currentUser linkWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];

linkWithCredential:completion: কল করা সফল হলে, ব্যবহারকারীর নতুন অ্যাকাউন্ট অনামনিমাস অ্যাকাউন্টের Firebase ডেটা অ্যাক্সেস করতে পারবে।

অটোমেটিক ক্লিন-আপ

আপনার প্রোজেক্ট Firebase Authentication with Identity Platform-এ আপগ্রেড করে থাকলে, আপনি Firebase কনসোলে অটোমেটিক ক্লিন-আপ চালু করতে পারবেন। এই ফিচার চালু করলে, আপনি Firebase-কে ৩০ দিনের বেশি পুরনো অনামিকা অ্যাকাউন্ট অটোমেটিক মুছে দেওয়ার অনুমতি দেন। অটোমেটিক পরিষ্কার করার সুবিধা চালু থাকা প্রোজেক্টে, পরিচয় গোপন রেখে করা যাচাইকরণ ব্যবহারের সীমা বা বিলিং কোটার মধ্যে গণনা করা হবে না।

  • অটোমেটিক ক্লিন-আপ চালু করার পরে তৈরি করা যেকোনও বেনামী অ্যাকাউন্ট তৈরি করার ৩০ দিন পরে যেকোনও সময় অটোমেটিক মুছে ফেলা হতে পারে।
  • অটোমেটিক ক্লিন-আপ চালু করার ৩০ দিন পরে আগে থেকে থাকা বেনামী অ্যাকাউন্ট অটোমেটিক মুছে দেওয়ার জন্য উপযুক্ত হবে।
  • আপনি অটোমেটিক ক্লিন-আপ বন্ধ করে দিলে, মুছে ফেলার জন্য শিডিউল করা যেকোনও বেনামী অ্যাকাউন্ট মুছে ফেলার জন্য শিডিউল করা থাকবে।
  • আপনি কোনও সাইন-ইন পদ্ধতির সাথে লিঙ্ক করে কোনও বেনামী অ্যাকাউন্ট "আপগ্রেড" করলে, অ্যাকাউন্টটি অটোমেটিক মুছে যাবে না।

এই ফিচার চালু করার আগে কতজন ব্যবহারকারী প্রভাবিত হবেন তা দেখতে চাইলে এবং আপনি যদি নিজের প্রোজেক্ট Firebase Authentication with Identity Platform-এ আপগ্রেড করে থাকেন, তাহলে আপনি is_anon-এর মাধ্যমে ক্লাউড লগিং ফিল্টার করতে পারবেন।

পরবর্তী ধাপ

যেহেতু ব্যবহারকারীরা এখন Firebase-এর মাধ্যমে যাচাই করিয়ে নিতে পারবেন, তাই আপনি Firebase নিয়ম ব্যবহার করে আপনার Firebase ডেটাবেসে ডেটা অ্যাক্সেস করার ব্যাপারে নিয়ন্ত্রণ করতে পারবেন।