אפשר לשלב את Firebase Authentication עם מערכת אימות בהתאמה אישית על ידי שינוי שרת האימות כך שיפיק אסימונים חתומים בהתאמה אישית כשמשתמש נכנס לחשבון. האפליקציה מקבלת את האסימון הזה ומשתמשת בו כדי לבצע אימות ב-Firebase.
לפני שמתחילים
-
לפני שתוכלו להשתמש ב-Firebase Authentication, תצטרכו:
- רושמים את פרויקט Unity בפרויקט Firebase.
- מוסיפים את Firebase Unity SDK (בספציפיות,
FirebaseAuth.unitypackage) לפרויקט Unity.
הוראות מפורטות לשלבי ההגדרה הראשוניים האלה זמינות במאמר הוספת Firebase לפרויקט Unity.
- משיגים את מפתחות השרת של הפרויקט:
-
במסוף Firebase, עוברים אל
Settings > הכרטיסייה Service accounts. - בחלק התחתון של הקטע SDK של Firebase לאדמינים, לוחצים על Generate New Private Key (יצירת מפתח פרטי חדש).
- זוג המפתחות הציבורי/פרטי של חשבון השירות החדש נשמר אוטומטית במחשב. מעתיקים את הקובץ הזה לשרת האימות.
-
במסוף Firebase, עוברים אל
אימות באמצעות 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 Security Rules, אפשר לקבל את מזהה המשתמש הייחודי של המשתמש המחובר מהמשתנה
auth, ולהשתמש בו כדי לקבוע לאילו נתונים משתמש יכול לגשת.
אתם יכולים לאפשר למשתמשים להיכנס לאפליקציה שלכם באמצעות כמה ספקי אימות על ידי קישור פרטי כניסה של ספק אימות לחשבון משתמש קיים.
כדי להוציא משתמש מהחשבון, מתקשרים אל
SignOut():
auth.SignOut();