ব্যবহারকারী সফলভাবে সাইন ইন করলে কাস্টম স্বাক্ষরিত টোকেন তৈরি করার জন্য আপনার অথেনটিকেশন সার্ভারটি পরিবর্তন করে আপনি একটি কাস্টম অথেনটিকেশন সিস্টেমের সাথে Firebase Authentication একীভূত করতে পারেন। আপনার অ্যাপ এই টোকেনটি গ্রহণ করে এবং ফায়ারবেসের সাথে অথেনটিকেশনের জন্য এটি ব্যবহার করে।
শুরু করার আগে
Firebase Authentication ব্যবহার করার আগে, আপনাকে নিম্নলিখিত বিষয়গুলো করতে হবে:
- আপনার ইউনিটি প্রজেক্টকে আপনার ফায়ারবেস প্রজেক্টের সাথে রেজিস্টার করুন।
- আপনার ইউনিটি প্রজেক্টে Firebase Unity এসডিকে (বিশেষত,
FirebaseAuth.unitypackage) যোগ করুন।
এই প্রাথমিক সেটআপ ধাপগুলোর বিস্তারিত নির্দেশাবলী "আপনার ইউনিটি প্রজেক্টে ফায়ারবেস যোগ করুন" অংশে খুঁজুন।
- আপনার প্রোজেক্টের সার্ভার কীগুলো সংগ্রহ করুন:
- Firebase কনসোলে, এখানে যান
> পরিষেবা অ্যাকাউন্ট ট্যাব । - Firebase Admin SDK সেকশনের একদম নিচে, Generate New Private Key-তে ক্লিক করুন।
- নতুন সার্ভিস অ্যাকাউন্টের পাবলিক/প্রাইভেট কী পেয়ারটি আপনার কম্পিউটারে স্বয়ংক্রিয়ভাবে সেভ হয়ে যায়। এই ফাইলটি আপনার অথেনটিকেশন সার্ভারে কপি করুন।
- Firebase কনসোলে, এখানে যান
ফায়ারবেস দিয়ে প্রমাণীকরণ করুন
FirebaseAuth ক্লাসটি সকল এপিআই কলের প্রবেশদ্বার। এটি FirebaseAuth.DefaultInstance- এর মাধ্যমে অ্যাক্সেসযোগ্য।Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
আপনার অথেনটিকেশন সার্ভার থেকে পাওয়া টোকেনটি দিয়ে Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync কল করুন।
- যখন ব্যবহারকারীরা আপনার অ্যাপে সাইন ইন করেন, তখন তাদের সাইন-ইন ক্রেডেনশিয়াল (যেমন, ইউজারনেম এবং পাসওয়ার্ড) আপনার অথেনটিকেশন সার্ভারে পাঠান। আপনার সার্ভার ক্রেডেনশিয়ালগুলো যাচাই করে এবং সেগুলো বৈধ হলে একটি কাস্টম টোকেন ফেরত দেয়।
- আপনার অথেনটিকেশন সার্ভার থেকে কাস্টম টোকেনটি পাওয়ার পর, ব্যবহারকারীকে সাইন ইন করতে সেটি
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsyncএ পাস করুন:auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithCustomTokenAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInWithCustomTokenAsync 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.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();