توضح لك هذه الصفحة كيفية تمكين التحقق من التطبيق في تطبيق Apple، باستخدام موفر التحقق من التطبيق المخصص لديك . عند تمكين التحقق من التطبيق، فإنك تساعد في ضمان أن تطبيقك فقط يمكنه الوصول إلى موارد Firebase الخاصة بمشروعك.
إذا كنت تريد استخدام App Check مع الموفرين المضمنين، فراجع المستندات الخاصة بـ App Check with App Attest و App Check with DeviceCheck .
قبل ان تبدأ
أضف Firebase إلى مشروع Apple الخاص بك إذا لم تكن قد قمت بذلك بالفعل.
قم بتنفيذ منطق الخادم المخصص لموفر التحقق من التطبيق الخاص بك .
1. أضف مكتبة التحقق من التطبيق إلى تطبيقك
أضف تبعية التحقق من التطبيق إلى
Podfile
الخاص بمشروعك:pod 'FirebaseAppCheck'
أو بدلاً من ذلك، يمكنك استخدام Swift Package Manager بدلاً من ذلك.
تأكد أيضًا من أنك تستخدم أحدث إصدار من أي مكتبات عملاء خدمة Firebase التي تعتمد عليها.
قم بتشغيل
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.
مراقبة المقاييس وتمكين التنفيذ
ومع ذلك، قبل تمكين التنفيذ، يجب عليك التأكد من أن القيام بذلك لن يؤدي إلى تعطيل المستخدمين الشرعيين الحاليين لديك. ومن ناحية أخرى، إذا كنت ترى استخدامًا مريبًا لموارد تطبيقك، فقد ترغب في تمكين التنفيذ عاجلاً.
للمساعدة في اتخاذ هذا القرار، يمكنك الاطلاع على مقاييس التحقق من التطبيق للخدمات التي تستخدمها:
- مراقبة تطبيق التحقق من مقاييس الطلب لقاعدة بيانات Realtime وCloud Firestore وCloud Storage والمصادقة (تجريبية).
- مراقبة التطبيق التحقق من مقاييس الطلب للوظائف السحابية .
تمكين فرض التحقق من التطبيق
عندما تفهم كيف سيؤثر التحقق من التطبيق على المستخدمين لديك وتكون جاهزًا للمتابعة، يمكنك تمكين فرض التحقق من التطبيق:
- تمكين فرض التحقق من التطبيق لقاعدة بيانات Realtime وCloud Firestore وCloud Storage والمصادقة (تجريبية).
- تمكين فرض التحقق من التطبيق لوظائف السحابة .
استخدم التحقق من التطبيق في بيئات تصحيح الأخطاء
إذا كنت تريد، بعد تسجيل تطبيقك للتحقق من التطبيق، تشغيل تطبيقك في بيئة لا يصنفها فحص التطبيق عادةً على أنها صالحة، مثل جهاز محاكاة أثناء التطوير، أو من بيئة التكامل المستمر (CI)، فيمكنك إنشاء نسخة تصحيح أخطاء لتطبيقك تستخدم موفر تصحيح أخطاء التحقق من التطبيق بدلاً من موفر التصديق الحقيقي.
راجع استخدام التحقق من التطبيق مع موفر تصحيح الأخطاء على أنظمة Apple الأساسية .