דף זה מראה לך כיצד להפעיל App Check באפליקציית Apple, באמצעות ספק ה-App Check המותאם אישית שלך . כאשר אתה מפעיל App Check, אתה עוזר להבטיח שרק האפליקציה שלך יכולה לגשת למשאבי Firebase של הפרויקט שלך.
אם אתה רוצה להשתמש ב-App Check עם הספקים המובנים, עיין במסמכים של App Check with App Attest ו- App Check with DeviceCheck .
לפני שאתה מתחיל
הוסף את Firebase לפרויקט Apple שלך אם עדיין לא עשית זאת.
יישם את ההיגיון בצד השרת של ספק האפליקציה המותאם אישית שלך .
1. הוסף את ספריית App Check לאפליקציה שלך
הוסף את התלות עבור App Check ל-
Podfile
של הפרויקט שלך:pod 'FirebaseAppCheck'
לחלופין, אתה יכול להשתמש ב- Swift Package Manager במקום זאת.
כמו כן, ודא שאתה משתמש בגרסה העדכנית ביותר של כל ספריות לקוח שירות Firebase שאתה תלוי בהן.
הפעל את
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 עבור השירותים שבהם אתה משתמש:
- עקוב אחר מדדי בקשות לבדיקת אפליקציה עבור מסד נתונים בזמן אמת, Cloud Firestore, אחסון בענן ואימות (ביטא).
- מעקב אחר מדדי בקשת בדיקת אפליקציה עבור פונקציות ענן .
הפעל אכיפת בדיקת אפליקציות
כשתבין כיצד בדיקת אפליקציות תשפיע על המשתמשים שלך ואתה מוכן להמשיך, תוכל להפעיל את אכיפת בדיקת האפליקציה:
- אפשר אכיפת בדיקת אפליקציות עבור מסד נתונים בזמן אמת, Cloud Firestore, אחסון בענן ואימות (ביטא).
- אפשר אכיפת בדיקת אפליקציות עבור פונקציות ענן .
השתמש ב-App Check בסביבות ניפוי באגים
אם, לאחר שרשמתם את האפליקציה שלכם ל-App Check, ברצונכם להפעיל את האפליקציה שלכם בסביבה שבדרך כלל לא תסווג אותה כתקינה, כגון סימולטור במהלך הפיתוח, או מסביבת אינטגרציה מתמשכת (CI), תוכלו צור בניית באגים של האפליקציה שלך המשתמשת בספק ניפוי באגים של App Check במקום בספק אישור אמיתי.
ראה בדיקת שימוש באפליקציה עם ספק ניפוי הבאגים בפלטפורמות של Apple .