Apple প্ল্যাটফর্মে পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্ট ব্যবহার করে Firebase-এর মাধ্যমে প্রমাণীকরণ করুন

আপনার ব্যবহারকারীদের তাদের ইমেল ঠিকানা এবং পাসওয়ার্ড ব্যবহার করে Firebase এর সাথে প্রমাণীকরণ করতে এবং আপনার অ্যাপের পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্টগুলি পরিচালনা করতে আপনি Firebase Authentication ব্যবহার করতে পারেন।

আপনি শুরু করার আগে

ফায়ারবেস নির্ভরতা ইনস্টল এবং পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।

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

এর পরে, কিছু কনফিগারেশন পদক্ষেপগুলি সম্পাদন করুন:

  1. আপনি যদি এখনও আপনার অ্যাপটিকে আপনার Firebase প্রকল্পের সাথে সংযুক্ত না করে থাকেন, তাহলে Firebase কনসোল থেকে তা করুন৷
  2. ইমেল/পাসওয়ার্ড সাইন-ইন সক্ষম করুন:
    1. Firebase কনসোলে , Auth বিভাগটি খুলুন।
    2. সাইন ইন পদ্ধতি ট্যাবে, ইমেল/পাসওয়ার্ড সাইন-ইন পদ্ধতি সক্ষম করুন এবং সংরক্ষণ করুন ক্লিক করুন।

একটি পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্ট তৈরি করুন

একটি পাসওয়ার্ড সহ একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি করতে, আপনার অ্যাপের সাইন-ইন কার্যকলাপে নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. আপনার UIApplicationDelegateFirebaseCore মডিউল আমদানি করুন, সেইসাথে আপনার অ্যাপ প্রতিনিধি যে কোনো Firebase মডিউল ব্যবহার করেন। উদাহরণস্বরূপ, Cloud Firestore এবং Authentication ব্যবহার করতে:

    সুইফটইউআই

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

    সুইফট

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    উদ্দেশ্য-C

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

    সুইফটইউআই

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

    সুইফট

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

    উদ্দেশ্য-C

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

    সুইফটইউআই

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. যখন একজন নতুন ব্যবহারকারী আপনার অ্যাপের সাইন-আপ ফর্ম ব্যবহার করে সাইন আপ করেন, তখন আপনার অ্যাপের প্রয়োজনীয় যেকোন নতুন অ্যাকাউন্ট যাচাইকরণের ধাপগুলি সম্পূর্ণ করুন, যেমন নতুন অ্যাকাউন্টের পাসওয়ার্ড সঠিকভাবে টাইপ করা হয়েছে কিনা এবং আপনার জটিলতার প্রয়োজনীয়তা পূরণ করে তা যাচাই করা।
  5. createUser এ নতুন ব্যবহারকারীর ইমেল ঠিকানা এবং পাসওয়ার্ড পাস করে একটি নতুন অ্যাকাউন্ট তৈরি করুন।

    সুইফট

    Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
      // ...
    }

    উদ্দেশ্য-C

    [[FIRAuth auth] createUserWithEmail:email
                               password:password
                             completion:^(FIRAuthDataResult * _Nullable authResult,
                                          NSError * _Nullable error) {
      // ...
    }];
    যদি নতুন অ্যাকাউন্টটি সফলভাবে তৈরি করা হয়, ব্যবহারকারী সাইন ইন করেছেন, এবং আপনি ফলাফল বস্তু থেকে ব্যবহারকারীর অ্যাকাউন্ট ডেটা পেতে পারেন যা কলব্যাক পদ্ধতিতে পাস করা হয়েছে।

একটি ইমেল ঠিকানা এবং পাসওয়ার্ড দিয়ে একটি ব্যবহারকারী সাইন ইন করুন

একটি পাসওয়ার্ড দিয়ে একটি ব্যবহারকারী সাইন ইন করার পদক্ষেপগুলি একটি নতুন অ্যাকাউন্ট তৈরির পদক্ষেপগুলির অনুরূপ৷ আপনার অ্যাপের সাইন-ইন কার্যকলাপে, নিম্নলিখিতগুলি করুন:

  1. আপনার UIApplicationDelegateFirebaseCore মডিউল আমদানি করুন, সেইসাথে আপনার অ্যাপ প্রতিনিধি যে কোনো Firebase মডিউল ব্যবহার করেন। উদাহরণস্বরূপ, Cloud Firestore এবং Authentication ব্যবহার করতে:

    সুইফটইউআই

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

    সুইফট

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    উদ্দেশ্য-C

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

    সুইফটইউআই

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

    সুইফট

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

    উদ্দেশ্য-C

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

    সুইফটইউআই

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. যখন একজন ব্যবহারকারী আপনার অ্যাপে সাইন ইন করেন, তখন signIn করতে ব্যবহারকারীর ইমেল ঠিকানা এবং পাসওয়ার্ড দিন।

    সুইফট

    Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
      guard let strongSelf = self else { return }
      // ...
    }

    উদ্দেশ্য-C

    [[FIRAuth auth] signInWithEmail:self->_emailField.text
                           password:self->_passwordField.text
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
      // ...
    }];
    ব্যবহারকারী সফলভাবে সাইন ইন করলে, আপনি ফলাফল বস্তু থেকে ব্যবহারকারীর অ্যাকাউন্ট ডেটা পেতে পারেন যা কলব্যাক পদ্ধতিতে পাস করা হয়েছে।

প্রস্তাবিত: একটি পাসওয়ার্ড নীতি সেট করুন

আপনি পাসওয়ার্ড জটিলতা প্রয়োজনীয়তা প্রয়োগ করে অ্যাকাউন্ট নিরাপত্তা উন্নত করতে পারেন।

আপনার প্রকল্পের জন্য একটি পাসওয়ার্ড নীতি কনফিগার করতে, Firebase কনসোলের প্রমাণীকরণ সেটিংস পৃষ্ঠায় পাসওয়ার্ড নীতি ট্যাবটি খুলুন:

প্রমাণীকরণ সেটিংস

Firebase Authentication পাসওয়ার্ড নীতি নিম্নলিখিত পাসওয়ার্ড প্রয়োজনীয়তা সমর্থন করে:

  • ছোট হাতের অক্ষর প্রয়োজন

  • বড় হাতের অক্ষর প্রয়োজন

  • সংখ্যাসূচক অক্ষর প্রয়োজন

  • নন-আলফানিউমেরিক অক্ষর প্রয়োজন

    নিম্নলিখিত অক্ষরগুলি অ-আলফানিউমেরিক অক্ষর প্রয়োজনীয়তা পূরণ করে: ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~

  • ন্যূনতম পাসওয়ার্ড দৈর্ঘ্য (6 থেকে 30 অক্ষর পর্যন্ত; ডিফল্ট 6 পর্যন্ত)

  • পাসওয়ার্ডের সর্বোচ্চ দৈর্ঘ্য (সর্বাধিক দৈর্ঘ্য 4096 অক্ষর)

আপনি দুটি মোডে পাসওয়ার্ড নীতি প্রয়োগ সক্ষম করতে পারেন:

  • প্রয়োজন : ব্যবহারকারী আপনার নীতি মেনে চলা পাসওয়ার্ড আপডেট না করা পর্যন্ত সাইন ইন করার প্রচেষ্টা ব্যর্থ হয়।

  • বিজ্ঞপ্তি : ব্যবহারকারীদের একটি অ-সঙ্গত পাসওয়ার্ড দিয়ে সাইন ইন করার অনুমতি দেওয়া হয়। এই মোডটি ব্যবহার করার সময়, ব্যবহারকারীর পাসওয়ার্ডটি ক্লায়েন্ট পক্ষের নীতির সাথে সঙ্গতিপূর্ণ কিনা তা পরীক্ষা করা উচিত এবং ব্যবহারকারীকে তাদের পাসওয়ার্ড আপডেট করার জন্য অনুরোধ করা উচিত যদি এটি মেনে না চলে।

নতুন ব্যবহারকারীদের সর্বদা একটি পাসওয়ার্ড চয়ন করতে হবে যা আপনার নীতি মেনে চলে।

আপনার যদি সক্রিয় ব্যবহারকারী থাকে, তাহলে আমরা সুপারিশ করছি প্রয়োজন মোড সক্ষম না করার যদি না আপনি এমন ব্যবহারকারীদের অ্যাক্সেস ব্লক করতে চান যাদের পাসওয়ার্ড আপনার নীতি মেনে চলে না। পরিবর্তে, বিজ্ঞপ্তি মোড ব্যবহার করুন, যা ব্যবহারকারীদের তাদের বর্তমান পাসওয়ার্ড দিয়ে সাইন ইন করতে দেয় এবং তাদের পাসওয়ার্ডের অভাবের প্রয়োজনীয়তা সম্পর্কে তাদের অবহিত করে।

প্রস্তাবিত: ইমেল গণনা সুরক্ষা সক্ষম করুন

কিছু Firebase Authentication পদ্ধতি যেগুলি ইমেল ঠিকানাগুলিকে প্যারামিটার হিসাবে গ্রহণ করে সেগুলি নির্দিষ্ট ত্রুটিগুলি ফেলে যদি ইমেল ঠিকানাটি নিবন্ধিত না থাকে যখন এটি নিবন্ধিত হতে হবে (উদাহরণস্বরূপ, একটি ইমেল ঠিকানা এবং পাসওয়ার্ড দিয়ে সাইন ইন করার সময়), বা যখন এটি অবশ্যই অব্যবহৃত হবে তখন নিবন্ধিত হবে (উদাহরণস্বরূপ, ব্যবহারকারীর ইমেল ঠিকানা পরিবর্তন করার সময়)। যদিও এটি ব্যবহারকারীদের নির্দিষ্ট প্রতিকারের পরামর্শ দেওয়ার জন্য সহায়ক হতে পারে, এটি আপনার ব্যবহারকারীদের দ্বারা নিবন্ধিত ইমেল ঠিকানাগুলি আবিষ্কার করার জন্য দূষিত অভিনেতাদের দ্বারা অপব্যবহার করা যেতে পারে।

এই ঝুঁকি কমাতে, আমরা আপনাকে Google Cloud gcloud টুল ব্যবহার করে আপনার প্রকল্পের জন্য ইমেল গণনা সুরক্ষা সক্ষম করার সুপারিশ করছি। মনে রাখবেন যে এই বৈশিষ্ট্যটি সক্ষম করলে Firebase Authentication ত্রুটি রিপোর্টিং আচরণ পরিবর্তন হয়: নিশ্চিত হন যে আপনার অ্যাপটি আরও নির্দিষ্ট ত্রুটির উপর নির্ভর করে না।

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

একজন ব্যবহারকারী প্রথমবার সাইন ইন করার পরে, একটি নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করা হয় এবং শংসাপত্রগুলির সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর, বা প্রমাণ প্রদানকারীর তথ্য — ব্যবহারকারী সাইন ইন করেছেন। এই নতুন অ্যাকাউন্টটি আপনার ফায়ারবেস প্রকল্পের অংশ হিসাবে সংরক্ষণ করা হয়েছে এবং ব্যবহারকারী কীভাবে সাইন ইন করুন না কেন, আপনার প্রকল্পের প্রতিটি অ্যাপ জুড়ে একজন ব্যবহারকারীকে শনাক্ত করতে ব্যবহার করা যেতে পারে।

  • আপনার অ্যাপে, আপনি User অবজেক্ট থেকে ব্যবহারকারীর মৌলিক প্রোফাইল তথ্য পেতে পারেন। ব্যবহারকারীদের পরিচালনা দেখুন।

  • আপনার Firebase Realtime Database এবং Cloud Storage সুরক্ষা নিয়মে , আপনি auth ভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ব্যবহারকারী আইডি পেতে পারেন এবং ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারে তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারেন।

আপনি একটি বিদ্যমান ব্যবহারকারীর অ্যাকাউন্টে প্রমাণীকরণ প্রদানকারীর শংসাপত্র লিঙ্ক করে একাধিক প্রমাণীকরণ প্রদানকারী ব্যবহার করে ব্যবহারকারীদের আপনার অ্যাপে সাইন ইন করার অনুমতি দিতে পারেন।

একজন ব্যবহারকারীকে সাইন আউট করতে, signOut:

সুইফট

let firebaseAuth = Auth.auth()
do {
  try firebaseAuth.signOut()
} catch let signOutError as NSError {
  print("Error signing out: %@", signOutError)
}

উদ্দেশ্য-C

NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
  NSLog(@"Error signing out: %@", signOutError);
  return;
}

আপনি প্রমাণীকরণ ত্রুটির সম্পূর্ণ পরিসরের জন্য ত্রুটি হ্যান্ডলিং কোড যোগ করতে চাইতে পারেন। হ্যান্ডেল ত্রুটি দেখুন.