আপনার ব্যবহারকারীদের তাদের ইমেল ঠিকানা এবং পাসওয়ার্ড ব্যবহার করে Firebase-এর মাধ্যমে প্রমাণীকরণ করতে এবং আপনার অ্যাপের পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্টগুলি পরিচালনা করতে আপনি Firebase Authentication ব্যবহার করতে পারেন।
শুরু করার আগে
ফায়ারবেস নির্ভরতা ইনস্টল এবং পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।
- Xcode-এ, আপনার অ্যাপ প্রজেক্ট খোলা থাকা অবস্থায়, File > Add Packages- এ নেভিগেট করুন।
- অনুরোধ করা হলে, Firebase Apple platforms SDK সংগ্রহস্থল যোগ করুন:
- Firebase Authentication লাইব্রেরিটি বেছে নিন।
- আপনার টার্গেটের বিল্ড সেটিংসের অন্যান্য লিঙ্কার ফ্ল্যাগ বিভাগে
-ObjCফ্ল্যাগ যোগ করুন। - শেষ হয়ে গেলে, Xcode স্বয়ংক্রিয়ভাবে ব্যাকগ্রাউন্ডে আপনার নির্ভরতাগুলি সমাধান এবং ডাউনলোড করা শুরু করবে।
https://github.com/firebase/firebase-ios-sdk.git
এরপর, কিছু কনফিগারেশন ধাপ সম্পাদন করুন:
- যদি আপনি এখনও আপনার অ্যাপটি আপনার Firebase প্রকল্পের সাথে সংযুক্ত না করে থাকেন, তাহলে Firebase কনসোল থেকে তা করুন।
- ইমেল/পাসওয়ার্ড সাইন-ইন সক্ষম করুন:
- Firebase কনসোলে , Auth বিভাগটি খুলুন।
- সাইন ইন পদ্ধতি ট্যাবে, ইমেল/পাসওয়ার্ড সাইন-ইন পদ্ধতি সক্ষম করুন এবং সংরক্ষণ করুন এ ক্লিক করুন।
একটি পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্ট তৈরি করুন
পাসওয়ার্ড দিয়ে একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি করতে, আপনার অ্যাপের সাইন-ইন কার্যকলাপে নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- আপনার
UIApplicationDelegateএFirebaseCoreমডিউলটি আমদানি করুন, সেইসাথে আপনার অ্যাপ প্রতিনিধিদের দ্বারা ব্যবহৃত অন্য যেকোনো Firebase মডিউল । উদাহরণস্বরূপ, Cloud Firestore এবং Authentication ব্যবহার করতে:সুইফটইউআই
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
সুইফট
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
অবজেক্টিভ-সি
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- আপনার অ্যাপ ডেলিগেটের
application(_:didFinishLaunchingWithOptions:)পদ্ধতিতে একটিFirebaseAppশেয়ার করা ইনস্ট্যান্স কনফিগার করুন:সুইফটইউআই
// Use Firebase library to configure APIs FirebaseApp.configure()
সুইফট
// Use Firebase library to configure APIs FirebaseApp.configure()
অবজেক্টিভ-সি
// Use Firebase library to configure APIs [FIRApp configure];
- যদি আপনি 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() } } } }
- যখন একজন নতুন ব্যবহারকারী আপনার অ্যাপের সাইন-আপ ফর্ম ব্যবহার করে সাইন আপ করেন, তখন আপনার অ্যাপের জন্য প্রয়োজনীয় যেকোনো নতুন অ্যাকাউন্ট যাচাইকরণ পদক্ষেপ পূরণ করুন, যেমন নতুন অ্যাকাউন্টের পাসওয়ার্ড সঠিকভাবে টাইপ করা হয়েছে কিনা এবং আপনার জটিলতার প্রয়োজনীয়তা পূরণ করে কিনা তা যাচাই করা।
- নতুন ব্যবহারকারীর ইমেল ঠিকানা এবং পাসওয়ার্ড দিয়ে
createUserলিখে একটি নতুন অ্যাকাউন্ট তৈরি করুন।যদি নতুন অ্যাকাউন্টটি সফলভাবে তৈরি করা হয়, তাহলে ব্যবহারকারী সাইন ইন করেছেন, এবং আপনি কলব্যাক পদ্ধতিতে পাস করা ফলাফল অবজেক্ট থেকে ব্যবহারকারীর অ্যাকাউন্ট ডেটা পেতে পারেন।সুইফট
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in // ... }
অবজেক্টিভ-সি
[[FIRAuth auth] createUserWithEmail:email password:password completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
ইমেল ঠিকানা এবং পাসওয়ার্ড দিয়ে একজন ব্যবহারকারীকে সাইন ইন করুন।
পাসওয়ার্ড দিয়ে ব্যবহারকারীকে সাইন ইন করার ধাপগুলি নতুন অ্যাকাউন্ট তৈরি করার ধাপগুলির অনুরূপ। আপনার অ্যাপের সাইন-ইন কার্যকলাপে, নিম্নলিখিতগুলি করুন:
- আপনার
UIApplicationDelegateএFirebaseCoreমডিউলটি আমদানি করুন, সেইসাথে আপনার অ্যাপ প্রতিনিধিদের দ্বারা ব্যবহৃত অন্য যেকোনো Firebase মডিউল । উদাহরণস্বরূপ, Cloud Firestore এবং Authentication ব্যবহার করতে:সুইফটইউআই
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
সুইফট
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
অবজেক্টিভ-সি
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- আপনার অ্যাপ ডেলিগেটের
application(_:didFinishLaunchingWithOptions:)পদ্ধতিতে একটিFirebaseAppশেয়ার করা ইনস্ট্যান্স কনফিগার করুন:সুইফটইউআই
// Use Firebase library to configure APIs FirebaseApp.configure()
সুইফট
// Use Firebase library to configure APIs FirebaseApp.configure()
অবজেক্টিভ-সি
// Use Firebase library to configure APIs [FIRApp configure];
- যদি আপনি 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() } } } }
- যখন কোন ব্যবহারকারী আপনার অ্যাপে সাইন ইন করেন, তখন ব্যবহারকারীর ইমেল ঠিকানা এবং পাসওয়ার্ড
signInকরতে দিন।যদি ব্যবহারকারী সফলভাবে সাইন ইন করে, তাহলে আপনি কলব্যাক পদ্ধতিতে পাস করা ফলাফল অবজেক্ট থেকে ব্যবহারকারীর অ্যাকাউন্ট ডেটা পেতে পারেন।সুইফট
Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in guard let strongSelf = self else { return } // ... }
অবজেক্টিভ-সি
[[FIRAuth auth] signInWithEmail:self->_emailField.text password:self->_passwordField.text completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
প্রস্তাবিত: একটি পাসওয়ার্ড নীতি সেট করুন
পাসওয়ার্ড জটিলতার প্রয়োজনীয়তা প্রয়োগ করে আপনি অ্যাকাউন্টের নিরাপত্তা উন্নত করতে পারেন।
আপনার প্রকল্পের জন্য একটি পাসওয়ার্ড নীতি কনফিগার করতে, Firebase কনসোলের প্রমাণীকরণ সেটিংস পৃষ্ঠায় পাসওয়ার্ড নীতি ট্যাবটি খুলুন:
Firebase Authentication পাসওয়ার্ড নীতিগুলি নিম্নলিখিত পাসওয়ার্ডের প্রয়োজনীয়তাগুলিকে সমর্থন করে:
ছোট হাতের অক্ষর প্রয়োজন
বড় হাতের অক্ষর প্রয়োজন
সংখ্যাসূচক অক্ষর প্রয়োজন
অ-বর্ণানুক্রমিক অক্ষর প্রয়োজন
নিম্নলিখিত অক্ষরগুলি অ-বর্ণানুক্রমিক অক্ষরের প্রয়োজনীয়তা পূরণ করে:
^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~সর্বনিম্ন পাসওয়ার্ডের দৈর্ঘ্য (৬ থেকে ৩০ অক্ষরের মধ্যে; ডিফল্ট ৬ অক্ষর)
সর্বাধিক পাসওয়ার্ডের দৈর্ঘ্য (সর্বোচ্চ দৈর্ঘ্য ৪০৯৬ অক্ষর)
আপনি দুটি মোডে পাসওয়ার্ড নীতি প্রয়োগ সক্ষম করতে পারেন:
প্রয়োজন : ব্যবহারকারী আপনার নীতিমালা মেনে চলা পাসওয়ার্ড আপডেট না করা পর্যন্ত সাইন আপ করার প্রচেষ্টা ব্যর্থ হবে।
বিজ্ঞপ্তি : ব্যবহারকারীরা একটি অ-সম্মতিপূর্ণ পাসওয়ার্ড দিয়ে সাইন আপ করতে পারবেন। এই মোডটি ব্যবহার করার সময়, আপনার পরীক্ষা করা উচিত যে ব্যবহারকারীর পাসওয়ার্ড ক্লায়েন্ট পক্ষের নীতি মেনে চলে কিনা এবং যদি এটি মেনে না চলে তবে ব্যবহারকারীকে কোনওভাবে তাদের পাসওয়ার্ড আপডেট করার জন্য অনুরোধ করা উচিত।
নতুন ব্যবহারকারীদের সর্বদা এমন একটি পাসওয়ার্ড বেছে নিতে হবে যা আপনার নীতি মেনে চলে।
যদি আপনার সক্রিয় ব্যবহারকারী থাকে, তাহলে আমরা সাইন ইন করার সময় জোর করে আপগ্রেড সক্ষম না করার পরামর্শ দিচ্ছি যদি না আপনি এমন ব্যবহারকারীদের অ্যাক্সেস ব্লক করতে চান যাদের পাসওয়ার্ড আপনার নীতি মেনে চলে না। পরিবর্তে, নোটিফাই মোড ব্যবহার করুন, যা ব্যবহারকারীদের তাদের বর্তমান পাসওয়ার্ড দিয়ে সাইন ইন করতে এবং তাদের পাসওয়ার্ডে থাকা প্রয়োজনীয়তাগুলি সম্পর্কে অবহিত করতে দেয়।
প্রস্তাবিত: ইমেল গণনা সুরক্ষা সক্ষম করুন
কিছু Firebase Authentication পদ্ধতি যা ইমেল ঠিকানাগুলিকে প্যারামিটার হিসেবে গ্রহণ করে, নির্দিষ্ট ত্রুটিগুলি ফেলে দেয় যদি ইমেল ঠিকানাটি নিবন্ধিত না থাকে যখন এটি নিবন্ধিত থাকা আবশ্যক (উদাহরণস্বরূপ, একটি ইমেল ঠিকানা এবং পাসওয়ার্ড দিয়ে সাইন ইন করার সময়), অথবা যখন এটি অব্যবহৃত থাকে (উদাহরণস্বরূপ, একজন ব্যবহারকারীর ইমেল ঠিকানা পরিবর্তন করার সময়) নিবন্ধিত থাকে। যদিও এটি ব্যবহারকারীদের নির্দিষ্ট প্রতিকারের পরামর্শ দেওয়ার জন্য সহায়ক হতে পারে, তবে আপনার ব্যবহারকারীদের দ্বারা নিবন্ধিত ইমেল ঠিকানাগুলি আবিষ্কার করার জন্য দূষিত ব্যক্তিরা এটির অপব্যবহারও করতে পারে।
এই ঝুঁকি কমাতে, আমরা আপনাকে Google Cloud gcloud টুল ব্যবহার করে আপনার প্রকল্পের জন্য ইমেল গণনা সুরক্ষা সক্ষম করার পরামর্শ দিচ্ছি। মনে রাখবেন যে এই বৈশিষ্ট্যটি সক্ষম করলে Firebase Authentication এর ত্রুটি প্রতিবেদনের আচরণ পরিবর্তন হয়: নিশ্চিত করুন যে আপনার অ্যাপটি আরও নির্দিষ্ট ত্রুটির উপর নির্ভর করে না।
পরবর্তী পদক্ষেপ
একজন ব্যবহারকারী প্রথমবার সাইন ইন করার পর, একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয় এবং শংসাপত্রের সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর, অথবা প্রমাণীকরণ প্রদানকারীর তথ্য—যার মাধ্যমে ব্যবহারকারী সাইন ইন করেছেন। এই নতুন অ্যাকাউন্টটি আপনার Firebase প্রকল্পের অংশ হিসাবে সংরক্ষণ করা হয় এবং ব্যবহারকারী যেভাবেই সাইন ইন করুক না কেন, আপনার প্রকল্পের প্রতিটি অ্যাপে একজন ব্যবহারকারীকে সনাক্ত করতে ব্যবহার করা যেতে পারে।
আপনার অ্যাপগুলিতে, আপনি
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) }
অবজেক্টিভ-সি
NSError *signOutError; BOOL status = [[FIRAuth auth] signOut:&signOutError]; if (!status) { NSLog(@"Error signing out: %@", signOutError); return; }
আপনি সম্পূর্ণ পরিসরের প্রমাণীকরণ ত্রুটির জন্য ত্রুটি পরিচালনা কোড যোগ করতে চাইতে পারেন। Handle Errors দেখুন।