אפשר לשלב את Firebase Authentication עם מערכת אימות בהתאמה אישית באמצעות לשנות את שרת האימות כדי להפיק אסימונים חתומים בהתאמה אישית כשמשתמש נכנס בהצלחה. האפליקציה שלך מקבלת את האסימון הזה ומשתמשת בו כדי לאמת עם Firebase.
לפני שמתחילים
-
לפני שמשתמשים Firebase Authentication צריך:
- רושמים את פרויקט Unity בפרויקט Firebase.
- מוסיפים את ה-SDK של Firebase Unity (באופן ספציפי,
FirebaseAuth.unitypackage
) לפרויקט ב-Unity.
הוראות מפורטות לשלבי הגדרה ראשוניים אלה מפורטות ב הוספת Firebase ל-Unity פרויקט.
- משיגים את מפתחות השרת של הפרויקט:
- נכנסים אל חשבונות שירות. בדף ההגדרות של הפרויקט.
- לוחצים על יצירת מפתח פרטי חדש בחלק התחתון של הקטע Firebase Admin SDK בדף חשבונות שירות.
- זוג המפתחות הציבורי/פרטי של חשבון השירות החדש מוגדר באופן אוטומטי שנשמרה במחשב. מעתיקים את הקובץ הזה לשרת האימות.
אימות באמצעות Firebase
המחלקהFirebaseAuth
היא השער לכל הקריאות ל-API.
אפשר לגשת אליו דרך FirebaseAuth.DefaultInstance.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
קוראים לפונקציה Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
באמצעות האסימון מאת
שרת האימות שלכם.
- כשמשתמשים נכנסים לאפליקציה, צריך לשלוח את פרטי הכניסה שלהם (ל למשל, שם המשתמש והסיסמה שלו) לשרת האימות. שלך השרת בודק את פרטי הכניסה ומחזיר אסימון בהתאמה אישית אם הם חוקיים.
- אחרי שמקבלים את האסימון המותאם אישית משרת האימות, מעבירים
אותו אל
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
כדי להיכנס user: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();