اصالت‌سنجی ناشناس با Firebase بااستفاده از Unity

می‌توانید از Firebase Authentication برای ایجاد و استفاده از حساب‌های ناشناس موقت برای اصالت‌سنجی با Firebase استفاده کنید. از این حساب‌های موقت ناشناس می‌توان برای اجازه دادن به کاربرانی که هنوز در برنامه شما ثبت‌نام نکرده‌اند برای کار با داده‌های محافظت‌شده توسط قوانین امنیتی استفاده کرد. اگر کاربر ناشناسی تصمیم بگیرد در برنامه شما ثبت‌نام کند، می‌توانید اعتبارنامه‌های ورود به سیستم او را به حساب ناشناس پیوند دهید تا بتواند در جلسات آینده نیز با داده‌های محافظت‌شده‌اش کار کند.

قبل از شروع

  1. قبل‌از اینکه بتوانید از Firebase Authentication استفاده کنید، باید Firebase Unity کیت توسعه نرم‌افزار (به‌طور دقیق، FirebaseAuth.unitypackage) را به پروژه Unity خود اضافه کنید.

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

  2. اگر هنوز برنامه‌تان را به پروژه Firebase متصل نکرده‌اید، این کار را از کنسول Firebase انجام دهید.
  3. فعال کردن اصالت‌سنجی ناشناس:
    1. در کنسول Firebase، به امنیت > اصالت‌سنجی بروید.
    2. در زبانه روش ورود به سیستم، ارائه‌دهنده ورود به سیستم ناشناس را فعال کنید.
    3. اختیاری: اگر پروژه‌تان را به Firebase Authentication with Identity Platform ارتقا داده‌اید، می‌توانید پاک‌سازی خودکار را فعال کنید. وقتی این تنظیم را فعال می‌کنید، حساب‌های ناشناس قدیمی‌تر از ۳۰ روز به‌طور خودکار حذف خواهند شد. در پروژه‌هایی که پاک‌سازی خودکار در آن‌ها فعال است، اصالت‌سنجی ناشناس دیگر در محدودیت‌های استفاده یا سهمیه‌های صورت‌حساب محاسبه نخواهد شد. پاک‌سازی خودکار را ببینید.

اصالت‌سنجی ناشناس با Firebase

وقتی کاربری که از سیستم خارج شده است از ویژگی برنامه‌ای استفاده می‌کند که به اصالت‌سنجی با Firebase نیاز دارد، با تکمیل مراحل زیر، کاربر را به‌صورت ناشناس به سیستم وارد کنید:

کلاس FirebaseAuth دروازه همه فراخوانی‌های API است. ازطریق FirebaseAuth.DefaultInstance قابل‌دسترسی است.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
‫۱. با Firebase.Auth.FirebaseAuth.SignInAnonymouslyAsync تماس بگیر.
auth.SignInAnonymouslyAsync().ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInAnonymouslyAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInAnonymouslyAsync 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);
});

تبدیل حساب ناشناس به حساب دائمی

وقتی کاربر ناشناسی در برنامه شما ثبت‌نام می‌کند، ممکن است بخواهید به او اجازه دهید کارش را با حساب جدیدش ادامه دهد—برای مثال، ممکن است بخواهید مواردی را که کاربر قبل‌از ثبت‌نام به سبد خریدش اضافه کرده است در سبد خرید حساب جدیدش دردسترس قرار دهید. برای انجام این کار، مراحل زیر را تکمیل کنید:

  1. وقتی کاربر ثبت‌نام می‌کند، جریان ورود به سیستم را برای ارائه‌دهنده اصالت‌سنجی کاربر تا قبل‌از فراخوانی یکی از روش‌های Firebase.Auth.FirebaseAuth.SignInAndRetrieveDataWithCredentialAsync تکمیل کنید. برای مثال، دریافت کردن نشانه شناسایی Google کاربر، نشانه دسترسی Facebook، یا نشانی ایمیل و گذرواژه.
  2. Firebase.Auth.Credential را برای ارائه‌دهنده اصالت‌سنجی جدید دریافت کنید:

  3. شیء Firebase.Auth.Credential را به روش LinkWithCredentialAsync کاربر واردشده منتقل کنید:

اگر فراخوانی LinkWithCredentialAsync موفقیت‌آمیز باشد، حساب جدید کاربر می‌تواند به داده‌های Firebase حساب ناشناس دسترسی پیدا کند.

پاک‌سازی خودکار

اگر پروژه‌تان را به Firebase Authentication with Identity Platform ارتقا داده‌اید، می‌توانید پاک‌سازی خودکار را در کنسول Firebase فعال کنید. وقتی این ویژگی را فعال می‌کنید، به Firebase اجازه می‌دهید حساب‌های ناشناس قدیمی‌تر از ۳۰ روز را به‌طور خودکار حذف کند. در پروژه‌هایی که پاک‌سازی خودکار در آن‌ها فعال است، اصالت‌سنجی ناشناس در محدودیت‌های استفاده یا سهمیه‌های صورت‌حساب محاسبه نمی‌شود.

  • هر حساب ناشناسی که پس‌از فعال کردن پاک‌سازی خودکار ایجاد شود ممکن است در هر زمانی پس‌از ۳۰ روز از ایجاد به‌طور خودکار حذف شود.
  • حساب‌های ناشناس موجود ۳۰ روز پس‌از فعال کردن پاک‌سازی خودکار واجدشرایط حذف خودکار خواهند بود.
  • اگر پاک‌سازی خودکار را خاموش کنید، هر حساب ناشناسی که برای حذف شدن زمان‌بندی شده باشد همچنان برای حذف شدن زمان‌بندی خواهد ماند.
  • اگر حساب ناشناسی را با پیوند دادن آن به هر روش ورود به سیستم «ارتقا دهید»، حساب به‌طور خودکار حذف نخواهد شد.

اگر می‌خواهید قبل‌از فعال کردن این ویژگی ببینید چند کاربر تحت تأثیر قرار می‌گیرند و پروژه خود را به Firebase Authentication with Identity Platform ارتقا داده‌اید، می‌توانید در is_anon در گزارش وقایع ابری براساس آن فیلتر کنید.

مراحل بعدی

اکنون که کاربران می‌توانند با Firebase احراز هویت کنند، می‌توانید دسترسی آن‌ها به داده‌ها در پایگاه داده Firebase خود را بااستفاده از قوانین Firebase کنترل کنید.