میتوانید با تغییر سرور احراز هویت خود برای تولید نشانههای امضا شده سفارشی زمانی که کاربر با موفقیت وارد سیستم میشود، Firebase Authentication با یک سیستم احراز هویت سفارشی ادغام کنید. برنامه شما این نشانه را دریافت میکند و از آن برای احراز هویت با Firebase استفاده میکند.
قبل از شروع
قبل از اینکه بتوانید از Firebase Authentication استفاده کنید، باید:
- پروژه Unity خود را با پروژه Firebase خود ثبت کنید.
- Firebase Unity SDK (مخصوصا
FirebaseAuth.unitypackage
) را به پروژه Unity خود اضافه کنید.
دستورالعمل های دقیق برای این مراحل اولیه راه اندازی را در افزودن Firebase به پروژه Unity خود بیابید.
- کلیدهای سرور پروژه خود را دریافت کنید:
- در تنظیمات پروژه خود به صفحه حساب های سرویس بروید.
- روی Generate New Private Key در پایین بخش Firebase Admin SDK صفحه حسابهای سرویس کلیک کنید.
- جفت کلید عمومی/خصوصی حساب سرویس جدید به طور خودکار در رایانه شما ذخیره می شود. این فایل را در سرور احراز هویت خود کپی کنید.
با Firebase احراز هویت
کلاسFirebaseAuth
دروازه همه تماسهای API است. از طریق 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 شما ذخیره میشود و میتوان از آن برای شناسایی کاربر در همه برنامههای پروژه شما، صرف نظر از نحوه ورود کاربر به سیستم استفاده کرد.
در برنامه های خود، می توانید اطلاعات اولیه نمایه کاربر را از شی
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();