אימות באמצעות Twitter ו-Unity (original) (raw)

כדי לאפשר למשתמשים לבצע אימות ב-Firebase באמצעות חשבונות Twitter שלהם, אפשר לשלב באפליקציה את האפשרות 'כניסה באמצעות Twitter'.

לפני שמתחילים

כדי להשתמש ב-Firebase Authentication, צריך:

חשוב לזכור שההוספה של Firebase לפרויקט Unity כוללת משימות,במסוף Firebase ובפרויקט Unity הפתוח (לדוגמה, אתם מורידים קובצי תצורה של Firebase מהמסוף, ואז מעבירים אותם בפרויקט ב-Unity).

גישה לכיתה Firebase.Auth.FirebaseAuth

המחלקה FirebaseAuth היא השער לכל הקריאות ל-API. אפשר לגשת אליה דרך FirebaseAuth.DefaultInstance.

Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

אימות באמצעות Firebase

  1. פועלים לפי ההוראות לכניסה באמצעות Twitter כדי לקבל אסימון גישה מסוג OAuth וסודות OAuth.
  2. אחרי שהמשתמש נכנס לחשבון, מחליפים את אסימון הגישה בפרטי כניסה ל-Firebase ומבצעים אימות ב-Firebase באמצעות פרטי הכניסה ל-Firebase:
    Firebase.Auth.Credential credential =
    Firebase.Auth.TwitterAuthProvider.GetCredential(accessToken, secret);
    auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => {
    if (task.IsCanceled) {
    Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled.");
    return;
    }
    if (task.IsFaulted) {
    Debug.LogError("SignInAndRetrieveDataWithCredentialAsync 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, וניתן להשתמש בו כדי לזהות משתמש בכל האפליקציות בפרויקט, ללא קשר לאופן שבו המשתמש נכנס לחשבון.

אפשר לאפשר למשתמשים להיכנס לאפליקציה באמצעות מספר סוגי אימות מספקים באמצעות קישור פרטי הכניסה של ספק האימות קיים חשבון משתמש קיים.

כדי לנתק משתמש מהחשבון, יש להתקשר אל SignOut()

auth.SignOut();