আপনি Firebase Authentication ব্যবহার করে আপনার ব্যবহারকারীদের ইমেল ঠিকানা ও পাসওয়ার্ড দিয়ে Firebase-এ প্রমাণীকরণ করতে দিতে পারেন এবং আপনার অ্যাপের পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্টগুলো পরিচালনা করতে পারেন।
শুরু করার আগে
Firebase Authentication ব্যবহার করার আগে, আপনাকে নিম্নলিখিত বিষয়গুলো করতে হবে:
আপনার ইউনিটি প্রজেক্টটি রেজিস্টার করুন এবং ফায়ারবেস ব্যবহারের জন্য কনফিগার করুন।
আপনার ইউনিটি প্রজেক্টে যদি আগে থেকেই ফায়ারবেস ব্যবহার করা হয়, তাহলে এটি ফায়ারবেসের জন্য ইতোমধ্যেই নিবন্ধিত এবং কনফিগার করা আছে।
আপনার যদি কোনো ইউনিটি প্রজেক্ট না থাকে, তাহলে আপনি একটি স্যাম্পল অ্যাপ ডাউনলোড করতে পারেন।
আপনার ইউনিটি প্রজেক্টে Firebase Unity এসডিকে (বিশেষত,
FirebaseAuth.unitypackage) যোগ করুন।
মনে রাখবেন যে, আপনার ইউনিটি প্রজেক্টে ফায়ারবেস যোগ করার জন্য Firebase কনসোল এবং আপনার খোলা ইউনিটি প্রজেক্ট উভয় স্থানেই কাজ করতে হয় (উদাহরণস্বরূপ, আপনাকে কনসোল থেকে ফায়ারবেস কনফিগারেশন ফাইল ডাউনলোড করতে হবে, তারপর সেগুলোকে আপনার ইউনিটি প্রজেক্টে স্থানান্তর করতে হবে)।
Firebase.Auth.FirebaseAuth ক্লাসটি অ্যাক্সেস করুন
FirebaseAuth ক্লাসটি সকল এপিআই কলের প্রবেশদ্বার। এটি FirebaseAuth.DefaultInstance- এর মাধ্যমে অ্যাক্সেসযোগ্য। Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্ট তৈরি করুন
পাসওয়ার্ডসহ একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি করতে, আপনার অ্যাপের সাইন-ইন কোডে নিম্নলিখিত ধাপগুলো সম্পন্ন করুন:
- যখন কোনো নতুন ব্যবহারকারী আপনার অ্যাপের সাইন-আপ ফর্ম ব্যবহার করে সাইন আপ করেন, তখন আপনার অ্যাপের প্রয়োজনীয় নতুন অ্যাকাউন্ট যাচাইকরণের ধাপগুলো সম্পন্ন করুন, যেমন নতুন অ্যাকাউন্টের পাসওয়ার্ডটি সঠিকভাবে টাইপ করা হয়েছে কিনা এবং এটি আপনার নির্ধারিত জটিলতার শর্ত পূরণ করে কিনা তা যাচাই করা।
-
FirebaseAuth.CreateUserWithEmailAndPasswordএ নতুন ব্যবহারকারীর ইমেল ঠিকানা এবং পাসওয়ার্ড দিয়ে একটি নতুন অ্যাকাউন্ট তৈরি করুন:auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception); return; } // Firebase user has been created. Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("Firebase user created successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
ইমেল ঠিকানা এবং পাসওয়ার্ড দিয়ে ব্যবহারকারী সাইন ইন করুন।
পাসওয়ার্ড দিয়ে কোনো ব্যবহারকারীকে সাইন ইন করানোর ধাপগুলো একটি নতুন অ্যাকাউন্ট তৈরি করার ধাপগুলোর মতোই। আপনার অ্যাপের সাইন-ইন ফাংশনে, নিম্নলিখিত কাজগুলো করুন:
- যখন কোনো ব্যবহারকারী আপনার অ্যাপে সাইন ইন করেন, তখন ব্যবহারকারীর ইমেল ঠিকানা এবং পাসওয়ার্ড
FirebaseAuth.SignInWithEmailAndPasswordএ পাঠান:auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithEmailAndPasswordAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception); return; } Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
- আপনি অন্যান্য ওয়ার্কফ্লোর মতোই ক্রেডেনশিয়াল তৈরি করে সাইন ইন করতে পারেন:
Firebase.Auth.Credential credential = Firebase.Auth.EmailAuthProvider.GetCredential(email, password); auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception); return; } Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
সুপারিশ: একটি পাসওয়ার্ড নীতি নির্ধারণ করুন।
পাসওয়ার্ডের জটিলতা সংক্রান্ত শর্তাবলী আরোপ করার মাধ্যমে আপনি অ্যাকাউন্টের নিরাপত্তা উন্নত করতে পারেন।
আপনার প্রোজেক্টের জন্য পাসওয়ার্ড নীতি কনফিগার করতে, Firebase কনসোলের Security > Authentication > Settings ট্যাবের Password policy সেকশনটি খুলুন:
Firebase Authentication পাসওয়ার্ড পলিসিগুলো নিম্নলিখিত পাসওয়ার্ড আবশ্যকতাগুলো সমর্থন করে:
ছোট হাতের অক্ষর আবশ্যক
বড় হাতের অক্ষর আবশ্যক
সংখ্যাসূচক অক্ষর প্রয়োজন
অ-অ্যালফানিউমেরিক অক্ষর প্রয়োজন
নিম্নলিখিত অক্ষরগুলি বর্ণ ও সংখ্যা নয় এমন অক্ষরের শর্ত পূরণ করে:
^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~পাসওয়ার্ডের সর্বনিম্ন দৈর্ঘ্য (৬ থেকে ৩০ অক্ষরের মধ্যে; ডিফল্ট মান ৬)
পাসওয়ার্ডের সর্বোচ্চ দৈর্ঘ্য (সর্বোচ্চ ৪০৯৬ অক্ষর)
আপনি দুটি মোডে পাসওয়ার্ড নীতি প্রয়োগ সক্রিয় করতে পারেন:
আবশ্যক : ব্যবহারকারী আপনার নীতিমালার সাথে সঙ্গতিপূর্ণ একটি পাসওয়ার্ড হালনাগাদ না করা পর্যন্ত সাইন আপ করার প্রচেষ্টা ব্যর্থ হবে।
বিজ্ঞপ্তি : ব্যবহারকারীদের নীতিমালার সাথে অসামঞ্জস্যপূর্ণ পাসওয়ার্ড দিয়ে সাইন আপ করার অনুমতি দেওয়া হয়েছে। এই মোড ব্যবহার করার সময়, ক্লায়েন্ট সাইডে ব্যবহারকারীর পাসওয়ার্ডটি নীতিমালার সাথে সামঞ্জস্যপূর্ণ কিনা তা যাচাই করা উচিত এবং যদি তা সামঞ্জস্যপূর্ণ না হয়, তবে ব্যবহারকারীকে কোনোভাবে পাসওয়ার্ড আপডেট করার জন্য অনুরোধ জানানো উচিত।
নতুন ব্যবহারকারীদের সর্বদা এমন একটি পাসওয়ার্ড বেছে নিতে হবে যা আপনার নীতিমালার সাথে সঙ্গতিপূর্ণ।
আপনার যদি সক্রিয় ব্যবহারকারী থাকে, তবে আমরা সাইন ইন করার সময় 'ফোর্স আপগ্রেড' চালু না করার পরামর্শ দিই, যদি না আপনি এমন ব্যবহারকারীদের অ্যাক্সেস ব্লক করতে চান যাদের পাসওয়ার্ড আপনার নীতির সাথে সঙ্গতিপূর্ণ নয়। এর পরিবর্তে, 'নোটিফাই মোড' ব্যবহার করুন, যা ব্যবহারকারীদের তাদের বর্তমান পাসওয়ার্ড দিয়ে সাইন ইন করার সুযোগ দেয় এবং তাদের পাসওয়ার্ডে কী কী প্রয়োজনীয়তা পূরণ হয়নি সে সম্পর্কে অবহিত করে।
সুপারিশকৃত: ইমেল গণনা সুরক্ষা সক্রিয় করুন
Firebase Authentication কিছু পদ্ধতি, যেগুলো প্যারামিটার হিসেবে ইমেল অ্যাড্রেস গ্রহণ করে, সেগুলো নির্দিষ্ট কিছু এরর দেখায় যদি ইমেল অ্যাড্রেসটি রেজিস্টার করা থাকা সত্ত্বেও আনরেজিস্টার্ড থাকে (যেমন, ইমেল অ্যাড্রেস ও পাসওয়ার্ড দিয়ে সাইন ইন করার সময়), অথবা অব্যবহৃত থাকা সত্ত্বেও রেজিস্টার্ড থাকে (যেমন, কোনো ব্যবহারকারীর ইমেল অ্যাড্রেস পরিবর্তন করার সময়)। যদিও এটি ব্যবহারকারীদের নির্দিষ্ট প্রতিকারের পরামর্শ দেওয়ার ক্ষেত্রে সহায়ক হতে পারে, তবে ক্ষতিকর ব্যক্তিরা আপনার ব্যবহারকারীদের দ্বারা রেজিস্টার করা ইমেল অ্যাড্রেসগুলো খুঁজে বের করার জন্য এর অপব্যবহারও করতে পারে।
এই ঝুঁকি প্রশমিত করতে, আমরা আপনাকে গুগল ক্লাউডের gcloud টুল ব্যবহার করে আপনার প্রোজেক্টের জন্য ইমেল এনুমারেশন প্রোটেকশন চালু করার পরামর্শ দিচ্ছি। মনে রাখবেন যে, এই ফিচারটি চালু করলে Firebase Authentication -এর এরর রিপোর্টিং আচরণে পরিবর্তন আসে: নিশ্চিত হয়ে নিন যে আপনার অ্যাপটি আরও সুনির্দিষ্ট এররগুলোর উপর নির্ভর করে না।
পরবর্তী পদক্ষেপ
কোনো ব্যবহারকারী প্রথমবার সাইন ইন করার পর, একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি হয় এবং সেটি ব্যবহারকারীর সাইন ইন করার ক্রেডেনশিয়াল—অর্থাৎ, ইউজার নেম ও পাসওয়ার্ড, ফোন নম্বর, বা অথোরাইজেশন প্রোভাইডারের তথ্যের—সাথে লিঙ্ক করা হয়। এই নতুন অ্যাকাউন্টটি আপনার ফায়ারবেস প্রজেক্টের অংশ হিসেবে সংরক্ষিত থাকে এবং ব্যবহারকারী কীভাবে সাইন ইন করছেন তা নির্বিশেষে, আপনার প্রজেক্টের প্রতিটি অ্যাপে তাকে শনাক্ত করতে এটি ব্যবহার করা যেতে পারে।
আপনার অ্যাপগুলিতে, আপনি
Firebase.Auth.FirebaseUserঅবজেক্ট থেকে ব্যবহারকারীর প্রাথমিক প্রোফাইল তথ্য পেতে পারেন:Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { string name = user.DisplayName; string email = user.Email; System.Uri photo_url = user.PhotoUrl; // The user's Id, unique to the Firebase project. // Do NOT use this value to authenticate with your backend server, if you // have one; use User.TokenAsync() instead. string uid = user.UserId; }
আপনার Firebase Realtime Database and Cloud Storage Security Rules- এ, আপনি
authভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ইউজার আইডি পেতে পারেন এবং একজন ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারবে তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারেন।
কোনো ব্যবহারকারীকে সাইন আউট করতে, SignOut() কল করুন:
auth.SignOut();