يمكنك دمج Firebase Authentication مع نظام مصادقة مخصّص عن طريق تعديل خادم المصادقة لإنشاء رموز مميّزة مخصّصة وموقَّعة عندما يسجِّل المستخدم الدخول بنجاح. يتلقّى تطبيقك هذا الرمز المميّز ويستخدمه للمصادقة مع Firebase.
قبل البدء
-
قبل أن تتمكّن من استخدام Firebase Authentication، عليك تنفيذ ما يلي:
- تسجيل مشروع Unity في مشروعك على Firebase
- أضف حزمة Firebase Unity SDK (وتحديدًا،
FirebaseAuth.unitypackage) إلى مشروع Unity
يمكنك الاطّلاع على تعليمات تفصيلية بشأن خطوات الإعداد الأولية هذه في مقالة كيفية إضافة Firebase إلى مشروع Unity.
- الحصول على مفاتيح الخادم لمشروعك:
-
في وحدة تحكّم Firebase، انتقِل إلى علامة التبويب
الإعدادات > حسابات الخدمة. - في أسفل قسم Firebase Admin SDK ، انقر على إنشاء مفتاح خاص جديد.
- يتم تلقائيًا حفظ زوج المفتاح العام/الخاص لحساب الخدمة الجديد على جهاز الكمبيوتر. انسخ هذا الملف إلى خادم المصادقة.
-
في وحدة تحكّم Firebase، انتقِل إلى علامة التبويب
المصادقة باستخدام 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، ويمكن استخدامه لتحديد هوية المستخدم في كل تطبيق في مشروعك، بغض النظر عن طريقة تسجيل الدخول.
-
في تطبيقاتك، يمكنك الحصول على معلومات الملف الشخصي الأساسية للمستخدم من الـ
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();