התחל להשתמש ב-App Check עם ספק מותאם אישית בפלטפורמות של Apple

דף זה מראה לך כיצד להפעיל App Check באפליקציית Apple, באמצעות ספק ה-App Check המותאם אישית שלך . כאשר אתה מפעיל App Check, אתה עוזר להבטיח שרק האפליקציה שלך יכולה לגשת למשאבי Firebase של הפרויקט שלך.

אם אתה רוצה להשתמש ב-App Check עם הספקים המובנים, עיין במסמכים של App Check with App Attest ו- App Check with DeviceCheck .

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

1. הוסף את ספריית App Check לאפליקציה שלך

  1. הוסף את התלות עבור App Check ל- Podfile של הפרויקט שלך:

    pod 'FirebaseAppCheck'

    לחלופין, אתה יכול להשתמש ב- Swift Package Manager במקום זאת.

    כמו כן, ודא שאתה משתמש בגרסה העדכנית ביותר של כל ספריות לקוח שירות Firebase שאתה תלוי בהן.

  2. הפעל את pod install ופתח את קובץ .xcworkspace שנוצר.

2. יישם את פרוטוקולי App Check

ראשית, עליך ליצור מחלקות המיישמות את הפרוטוקולים AppCheckProvider ו- AppCheckProviderFactory .

למחלקת AppCheckProvider שלך חייבת להיות שיטה getToken(completion:) , אשר אוספת את כל המידע שספק ה-App Check המותאם אישית שלך דורש כהוכחה לאותנטיות, ושולחת אותו לשירות רכישת האסימון שלך בתמורה לאסימון App Check. ה-App Check SDK מטפל בשמירה במטמון של אסימון, אז קבל תמיד אסימון חדש בהטמעת getToken(completion:) שלך.

מָהִיר

class YourCustomAppCheckProvider: NSObject, AppCheckProvider {
  var app: FirebaseApp

  init(withFirebaseApp app: FirebaseApp) {
    self.app = app
    super.init()
  }

  func getToken() async throws -> AppCheckToken {
    let getTokenTask = Task { () -> AppCheckToken in
      // ...

      // Create AppCheckToken object.
      let exp = Date(timeIntervalSince1970: expirationFromServer)
      let token = AppCheckToken(
        token: tokenFromServer,
        expirationDate: exp
      )

      if Date() > exp {
        throw NSError(domain: "ExampleError", code: 1, userInfo: nil)
      }

      return token
    }

    return try await getTokenTask.value
  }

}

Objective-C

@interface YourCustomAppCheckProvider : NSObject <FIRAppCheckProvider>

@property FIRApp *app;

- (id)initWithApp:(FIRApp *)app;

@end

@implementation YourCustomAppCheckProvider

- (id)initWithApp:app {
    self = [super init];
    if (self) {
        self.app = app;
    }
    return self;
}

- (void)getTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken * _Nullable,
                                                 NSError * _Nullable))handler {
    dispatch_async(dispatch_get_main_queue(), ^{
        // Logic to exchange proof of authenticity for an App Check token.
        // ...

        // Create FIRAppCheckToken object.
        NSTimeInterval exp = expirationFromServer;
        FIRAppCheckToken *token
            = [[FIRAppCheckToken alloc] initWithToken:tokenFromServer
                                       expirationDate:[NSDate dateWithTimeIntervalSince1970:exp]];

        // Pass the token or error to the completion handler.
        handler(token, nil);
    });
}

@end

כמו כן, הטמע מחלקה של AppCheckProviderFactory שיוצרת מופעים של הטמעת AppCheckProvider שלך:

מָהִיר

class YourCustomAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return YourCustomAppCheckProvider(withFirebaseApp: app)
  }
}

Objective-C

@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourCustomAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app {
    return [[YourCustomAppCheckProvider alloc] initWithApp:app];
}

@end

3. אתחול App Check

הוסף את קוד האתחול הבא לנציג האפליקציה או לאתחול האפליקציה שלך:

מָהִיר

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

Objective-C

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

הצעדים הבאים

לאחר התקנת ספריית App Check באפליקציה שלך, התחל להפיץ את האפליקציה המעודכנת למשתמשים שלך.

אפליקציית הלקוח המעודכנת תתחיל לשלוח אסימוני App Check יחד עם כל בקשה שהיא תגיש ל-Firebase, אך מוצרי Firebase לא ידרשו שהאסימונים יהיו תקפים עד שתפעיל אכיפה בקטע App Check של מסוף Firebase.

עקוב אחר מדדים ואפשר אכיפה

עם זאת, לפני שתפעיל אכיפה, עליך לוודא כי פעולה זו לא תפריע למשתמשים הלגיטימיים הקיימים שלך. מצד שני, אם אתה רואה שימוש חשוד במשאבי האפליקציה שלך, אולי תרצה לאפשר אכיפה מוקדם יותר.

כדי לעזור בקבלת החלטה זו, תוכל להסתכל על מדדי App Check עבור השירותים שבהם אתה משתמש:

הפעל אכיפת בדיקת אפליקציות

כשתבין כיצד בדיקת אפליקציות תשפיע על המשתמשים שלך ואתה מוכן להמשיך, תוכל להפעיל את אכיפת בדיקת האפליקציה:

השתמש ב-App Check בסביבות ניפוי באגים

אם, לאחר שרשמתם את האפליקציה שלכם ל-App Check, ברצונכם להפעיל את האפליקציה שלכם בסביבה שבדרך כלל לא תסווג אותה כתקינה, כגון סימולטור במהלך הפיתוח, או מסביבת אינטגרציה מתמשכת (CI), תוכלו צור בניית באגים של האפליקציה שלך המשתמשת בספק ניפוי באגים של App Check במקום בספק אישור אמיתי.

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