אמת עם Firebase ב- iOS באמצעות מערכת אימות מותאמת אישית

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

לפני שאתה מתחיל

  1. להוסיף Firebase לפרויקט iOS שלך .
  2. כלול את התרמילים הבאים שלך Podfile :
    pod 'Firebase/Auth'
    
  3. קבל את מפתחות השרת של הפרויקט שלך:
    1. עבור אל שירות חשבונות דף ההגדרות של הפרויקט שלך.
    2. לחץ צור חדש פרטי מפתח בתחתית סעיף SDK של ניהול Firebase של דף חשבונות שירות.
    3. זוג המפתחות הציבורי/הפרטי של חשבון השירות החדש נשמר אוטומטית במחשב שלך. העתק קובץ זה לשרת האימות שלך.

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

  1. ייבא את מודול Firebase ב שלך UIApplicationDelegate :

    מָהִיר

    import Firebase

    Objective-C

    @import Firebase;
  2. & Nbsp הגדר FirebaseApp משותף למשל, בדרך כלל של האפליקציה שלך application:didFinishLaunchingWithOptions: השיטה:

    מָהִיר

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. כאשר משתמשים נכנסים לאפליקציה שלך, שלח את אישורי הכניסה שלהם (למשל שם המשתמש והסיסמה שלהם) לשרת האימות שלך. בדיקות השרת שלך את האישורים ומחזיר מנהג סמלי אם הם תקפים.
  4. לאחר שתקבל את המנהג סמלי שרת האימות שלך, להעביר אותו signInWithCustomToken להיכנס למשתמש:

    מָהִיר

    Auth.auth().signIn(withCustomToken: customToken ?? "") { user, error in
      // ...
    }

    Objective-C

    [[FIRAuth auth] signInWithCustomToken:customToken
                               completion:^(FIRAuthDataResult * _Nullable authResult,
                                            NSError * _Nullable error) {
      // ...
    }];

הצעדים הבאים

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

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

  • בבסיס הנתונים בזמן אמת Firebase שלך לאחסון בענן אבטחה חוקי , אתה יכול לקבל את שנכנסים למערכת זיהוי המשתמש הייחודי של המשתמש מן auth משתנה, ולהשתמש בו כדי לקבוע אילו נתונים גישה יכול משתמש.

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

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

מָהִיר

    let firebaseAuth = Auth.auth()
do {
  try firebaseAuth.signOut()
} catch let signOutError as NSError {
  print("Error signing out: %@", signOutError)
}
  

Objective-C

    NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
  NSLog(@"Error signing out: %@", signOutError);
  return;
}

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