אימות באמצעות Firebase באמצעות מערכת אימות בהתאמה אישית

אפשר לשלב אימות ב-Firebase עם מערכת אימות בהתאמה אישית על ידי שינוי שרת האימות כך שיפיק אסימונים חתומים בהתאמה אישית כשמשתמש נכנס לחשבון בהצלחה. האפליקציה מקבלת את האסימון הזה ומשתמשת בו כדי לבצע אימות ב-Firebase.

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

  1. אם עדיין לא עשיתם את זה, אתם צריכים לפעול לפי השלבים במדריך תחילת העבודה.
  2. מתקינים ומגדירים את Firebase Admin SDK. חשוב להפעיל את ה-SDK עם פרטי הכניסה הנכונים לפרויקט שלכם ב-Firebase.

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

  1. כשהמשתמשים נכנסים לאפליקציה שלכם, צריך לשלוח את פרטי הכניסה שלהם (לדוגמה, שם המשתמש והסיסמה) לשרת האימות. השרת בודק את פרטי הכניסה, ואם הם תקינים, יוצר אסימון Firebase מותאם אישית ושולח את האסימון בחזרה לאפליקציה.

  2. אחרי שמקבלים את האסימון המותאם אישית משרת האימות, מעבירים אותו אל signInWithCustomToken() כדי שהמשתמש יוכל להיכנס:

    try {
        final userCredential =
            await FirebaseAuth.instance.signInWithCustomToken(token);
        print("Sign-in successful.");
    } on FirebaseAuthException catch (e) {
        switch (e.code) {
            case "invalid-custom-token":
                print("The supplied token is not a Firebase custom auth token.");
                break;
            case "custom-token-mismatch":
                print("The supplied token is for a different Firebase project.");
                break;
            default:
                print("Unknown error.");
        }
    }
    

השלבים הבאים

אחרי שמשתמש יוצר חשבון חדש, החשבון הזה נשמר כחלק מפרויקט Firebase שלכם, ואפשר להשתמש בו כדי לזהות משתמש בכל אפליקציה בפרויקט, בלי קשר לשיטת הכניסה שבה המשתמש השתמש.

באפליקציות, אפשר לקבל את פרטי הפרופיל הבסיסיים של המשתמש מאובייקט User. איך מנהלים משתמשים

בכללי האבטחה של Firebase Realtime Database ו-Cloud Storage, אפשר לקבל את מזהה המשתמש הייחודי של המשתמש המחובר מהמשתנה auth ולהשתמש בו כדי לשלוט בנתונים שהמשתמש יכול לגשת אליהם.

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

כדי להוציא משתמש מהחשבון, קוראים ל-signOut():

await FirebaseAuth.instance.signOut();