با استفاده از یک سیستم احراز هویت سفارشی و Unity ، با Firebase احراز هویت کنید

شما می توانید با اصلاح سرور احراز هویت خود ، احراز هویت Firebase را با یک سیستم احراز هویت سفارشی ادغام کنید تا وقتی کاربر با موفقیت وارد سیستم می شود ، نشانه های سفارشی امضا شود. برنامه شما این توکن را دریافت می کند و از آن برای احراز هویت با Firebase استفاده می کند.

قبل از اینکه شروع کنی

  1. قبل از اینکه شما می توانید استفاده کنید فایربیس احراز هویت ، شما نیاز به:

    • پروژه Unity خود را با پروژه Firebase خود ثبت کنید.
    • اضافه کردن فایربیس وحدت SDK (به طور خاص، FirebaseAuth.unitypackage ) به طرح وحدت خود را.

    یافتن دستورالعمل های دقیق برای این مراحل راه اندازی اولیه در اضافه کردن فایربیس به پروژه وحدت خود را .

  2. کلیدهای سرور پروژه خود را دریافت کنید:
    1. برو به حسابهای سرویس صفحه در تنظیمات پروژه خود را.
    2. کلیک کنید تولید جدید کلید خصوصی در پایین بخش فایربیس محیط مدیریت SDK صفحه حسابهای سرویس.
    3. جفت کلید عمومی/خصوصی حساب سرویس جدید به طور خودکار در رایانه شما ذخیره می شود. این فایل را در سرور احراز هویت خود کپی کنید.

احراز هویت با Firebase

FirebaseAuth کلاس دروازه برای همه تماس API است. آن را از طریق دسترسی است FirebaseAuth.DefaultInstance .
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

پاسخ Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync با این نشانه رمز از سرور احراز هویت خود را.

  1. وقتی کاربران به برنامه شما وارد می شوند ، اطلاعات ورود به سیستم خود (به عنوان مثال ، نام کاربری و رمز عبور خود) را به سرور احراز هویت خود ارسال کنید. چک سرور شما اعتبار و بازده یک سفارشی رمز اگر آنها معتبر هستند.
  2. پس از شما در سفارشی نشانه از سرور احراز هویت خود را دریافت، آن را به 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.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.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;
    }
    
  • در خود پایگاه فایربیس بیدرنگ و ابر ذخیره سازی قوانین امنیتی ، شما می توانید دریافت امضا در شناسه کاربری منحصر به فرد کاربر را از auth متغیر، و استفاده از آن برای کنترل آنچه داده دسترسی کاربر می تواند.

شما می توانید اجازه به کاربران برای ورود به سیستم برنامه خود را با استفاده از ارائه دهندگان تأیید هویت چندگانه توسط ارتباط تایید اعتبار ارائه دهنده به یک حساب کاربری موجود.

برای خروج از سیستم یک کاربر، پاسخ SignOut() :

auth.SignOut();