GitHub ও Unity ব্যবহার করে যাচাইকরণ

আপনার অ্যাপে GitHub যাচাইকরণ ইন্টিগ্রেট করে, আপনার ব্যবহারকারীদের GitHub অ্যাকাউন্ট ব্যবহার করে Firebase-এর মাধ্যমে যাচাই করিয়ে নিতে পারবেন।

শুরু করার আগে

আপনি Firebase Authentication ব্যবহার করার আগে, আপনাকে এগুলি করতে হবে:

  • Firebase ব্যবহার করার জন্য আপনার Unity প্রোজেক্ট রেজিস্টার ও কনফিগার করুন।

    • আপনার Unity প্রোজেক্টে আগে থেকেই Firebase ব্যবহার করা হলে, এটি আগে থেকেই Firebase-এর জন্য রেজিস্টার ও কনফিগার করা আছে।

    • আপনার কাছে Unity প্রোজেক্ট না থাকলে, আপনি একটি স্যাম্পেল অ্যাপ ডাউনলোড করতে পারবেন।

  • আপনার Unity প্রোজেক্টে Firebase Unity SDK (বিশেষ করে, FirebaseAuth.unitypackage) যোগ করুন।

মনে রাখবেন, আপনার Unity প্রোজেক্টে Firebase যোগ করার জন্য Firebase কনসোল এবং আপনার খোলা Unity প্রোজেক্ট, দুটি জায়গাতেই কাজ করতে হয় (যেমন, আপনি কনসোল থেকে Firebase কনফিগারেশন ফাইল ডাউনলোড করেন, তারপর সেগুলি আপনার Unity প্রোজেক্টে সরান)।

Firebase.Auth ক্লাসে অ্যাক্সেস করা

FirebaseAuth ক্লাস হল সব API কলের গেটওয়ে। এটি FirebaseAuth.DefaultInstance-এর মাধ্যমে অ্যাক্সেস করা যায়।
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

Firebase-এর মাধ্যমে যাচাইকরণ

  1. সাইন-ইন করা GitHub ব্যবহারকারীর জন্য টোকেন পেতে Android এবং iOS+ এর জন্য নির্দেশাবলী অনুসরণ করুন।
  2. ব্যবহারকারী সফলভাবে সাইন-ইন করার পরে, Firebase ক্রেডেনশিয়ালের জন্য অ্যাক্সেস টোকেন এক্সচেঞ্জ করুন এবং Firebase ক্রেডেনশিয়াল ব্যবহার করে Firebase-এর মাধ্যমে যাচাই করুন:
    Firebase.Auth.Credential credential =
        Firebase.Auth.GitHubAuthProvider.GetCredential(accessToken);
    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 প্রোজেক্টের অংশ হিসেবে স্টোর করা হয় এবং ব্যবহারকারী কীভাবে সাইন-ইন করেছেন তা নির্বিশেষে, আপনার প্রোজেক্টের প্রতিটি অ্যাপ জুড়ে কোনও ব্যবহারকারীকে শনাক্ত করতে ব্যবহার করা যেতে পারে।

  • আপনার অ্যাপে, আপনি 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 এবং Cloud Storage নিরাপত্তা বিধিতে, আপনি auth ভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ব্যবহারকারী আইডি পেতে এবং ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারবেন তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারবেন।

আপনি আগে থেকে থাকা ব্যবহারকারীর অ্যাকাউন্টের সাথে অনুমোদন প্রদানকারীর ক্রেডেনশিয়াল লিঙ্ক করে একাধিক অনুমোদন প্রদানকারীর মাধ্যমে আপনার অ্যাপে সাইন-ইন করার জন্য ব্যবহারকারীদের অনুমতি দিতে পারেন।

কোনও ব্যবহারকারীকে সাইন-আউট করতে, SignOut()-এ কল করুন:

auth.SignOut();