ابدأ باستخدام App Check مع موفر مخصص على منصات Apple

توضح لك هذه الصفحة كيفية تمكين التحقق من التطبيق في تطبيق Apple، باستخدام موفر التحقق من التطبيق المخصص لديك . عند تمكين التحقق من التطبيق، فإنك تساعد في ضمان أن تطبيقك فقط يمكنه الوصول إلى موارد Firebase الخاصة بمشروعك.

إذا كنت تريد استخدام App Check مع الموفرين المضمنين، فراجع المستندات الخاصة بـ App Check with App Attest و App Check with DeviceCheck .

قبل ان تبدأ

1. أضف مكتبة التحقق من التطبيق إلى تطبيقك

  1. أضف تبعية التحقق من التطبيق إلى Podfile الخاص بمشروعك:

    pod 'FirebaseAppCheck'

    أو بدلاً من ذلك، يمكنك استخدام Swift Package Manager بدلاً من ذلك.

    تأكد أيضًا من أنك تستخدم أحدث إصدار من أي مكتبات عملاء خدمة Firebase التي تعتمد عليها.

  2. قم بتشغيل pod install وافتح ملف .xcworkspace الذي تم إنشاؤه.

2. تنفيذ بروتوكولات التحقق من التطبيق

أولاً، تحتاج إلى إنشاء فئات تنفذ بروتوكولات AppCheckProvider و AppCheckProviderFactory .

يجب أن تحتوي فئة AppCheckProvider الخاصة بك على طريقة getToken(completion:) ، التي تجمع أي معلومات يطلبها موفر التحقق من التطبيق المخصص الخاص بك كدليل على الأصالة، وترسلها إلى خدمة الحصول على الرمز المميز مقابل رمز التحقق من التطبيق. يتعامل 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
  }

}

ج موضوعية

@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)
  }
}

ج موضوعية

@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourCustomAppCheckProviderFactory

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

@end

3. تهيئة فحص التطبيق

أضف رمز التهيئة التالي إلى مفوض التطبيق أو مُهيئ التطبيق:

سويفت

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

FirebaseApp.configure()

ج موضوعية

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

[FIRApp configure];

الخطوات التالية

بمجرد تثبيت مكتبة التحقق من التطبيقات في تطبيقك، ابدأ بتوزيع التطبيق المحدث على المستخدمين.

سيبدأ تطبيق العميل المحدث في إرسال رموز التحقق من التطبيق مع كل طلب يقدمه إلى Firebase، ولكن منتجات Firebase لن تتطلب أن تكون الرموز المميزة صالحة حتى تقوم بتمكين التنفيذ في قسم التحقق من التطبيق في وحدة تحكم Firebase.

مراقبة المقاييس وتمكين التنفيذ

ومع ذلك، قبل تمكين التنفيذ، يجب عليك التأكد من أن القيام بذلك لن يؤدي إلى تعطيل المستخدمين الشرعيين الحاليين لديك. ومن ناحية أخرى، إذا كنت ترى استخدامًا مريبًا لموارد تطبيقك، فقد ترغب في تمكين التنفيذ عاجلاً.

للمساعدة في اتخاذ هذا القرار، يمكنك الاطلاع على مقاييس التحقق من التطبيق للخدمات التي تستخدمها:

تمكين فرض التحقق من التطبيق

عندما تفهم كيف سيؤثر التحقق من التطبيق على المستخدمين لديك وتكون جاهزًا للمتابعة، يمكنك تمكين فرض التحقق من التطبيق:

استخدم التحقق من التطبيق في بيئات تصحيح الأخطاء

إذا كنت تريد، بعد تسجيل تطبيقك للتحقق من التطبيق، تشغيل تطبيقك في بيئة لا يصنفها فحص التطبيق عادةً على أنها صالحة، مثل جهاز محاكاة أثناء التطوير، أو من بيئة التكامل المستمر (CI)، فيمكنك إنشاء نسخة تصحيح أخطاء لتطبيقك تستخدم موفر تصحيح أخطاء التحقق من التطبيق بدلاً من موفر التصديق الحقيقي.

راجع استخدام التحقق من التطبيق مع موفر تصحيح الأخطاء على أنظمة Apple الأساسية .