این صفحه به شما نشان میدهد که چگونه با استفاده از ارائهدهندهی سفارشی App Check ، App Check در یک برنامهی اپل فعال کنید. وقتی App Check را فعال میکنید، اطمینان حاصل میکنید که فقط برنامهی شما میتواند به منابع Firebase پروژهتان دسترسی داشته باشد.
اگر میخواهید از App Check با ارائهدهندگان داخلی استفاده کنید، به مستندات App Check با App Attest و App Check با DeviceCheck مراجعه کنید.
قبل از اینکه شروع کنی
اگر قبلاً Firebase را به پروژه اپل خود اضافه نکردهاید، آن را اضافه کنید .
منطق سمت سرور ارائه دهنده App Check سفارشی خود را پیاده سازی کنید .
۱. کتابخانه App Check را به برنامه خود اضافه کنید
وابستگی App Check را به
Podfileپروژه خود اضافه کنید:pod 'FirebaseAppCheck'
یا، به عنوان یک جایگزین، میتوانید از Swift Package Manager استفاده کنید.
همچنین، مطمئن شوید که از آخرین نسخه کتابخانههای کلاینت سرویس Firebase که به آنها وابسته هستید استفاده میکنید.
دستور
pod installاجرا کنید و فایل.xcworkspaceایجاد شده را باز کنید.
۲. پروتکلهای 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 } }
هدف-سی
@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
۳. App Check
کد مقداردهی اولیه زیر را به نماینده برنامه یا مقداردهی اولیه برنامه خود اضافه کنید:
سویفت
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
هدف-سی
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
مراحل بعدی
پس از نصب کتابخانه App Check در برنامه خود، شروع به توزیع برنامه بهروزرسانیشده بین کاربران خود کنید.
برنامه کلاینت بهروزرسانیشده، همراه با هر درخواستی که به Firebase ارسال میکند، شروع به ارسال توکنهای App Check میکند، اما محصولات Firebase تا زمانی که شما در بخش App Check کنسول Firebase، اجرای این کدها را فعال نکنید، نیازی به معتبر بودن آنها نخواهند داشت.
نظارت بر معیارها و فعال کردن اجرای آنها
با این حال، قبل از فعال کردن اجرای قانون، باید مطمئن شوید که انجام این کار، کاربران قانونی فعلی شما را مختل نمیکند. از طرف دیگر، اگر استفاده مشکوکی از منابع برنامه خود مشاهده میکنید، بهتر است زودتر اجرای قانون را فعال کنید.
برای کمک به تصمیمگیری، میتوانید به معیارهای App Check برای سرویسهایی که استفاده میکنید، نگاهی بیندازید:
- معیارهای درخواست App Check برای Firebase AI Logic ، Data Connect ، Realtime Database ، Cloud Firestore ، Cloud Storage ، Authentication ، Google Identity برای iOS، Maps JavaScript API و Places API (جدید) نظارت کنید.
- نظارت بر App Check معیارهای درخواست برای Cloud Functions .
فعال کردن اجرای App Check
وقتی فهمیدید که App Check چگونه بر کاربران شما تأثیر میگذارد و آماده ادامه کار شدید، میتوانید اجرای App Check را فعال کنید:
- فعال کردن اجرای App Check برای Firebase AI Logic ، Data Connect ، Realtime Database ، Cloud Firestore ، Cloud Storage ، Authentication ، Google Identity برای iOS، Maps JavaScript API و Places API (جدید).
- فعال کردن اجرای App Check برای Cloud Functions .
استفاده از App Check در محیطهای اشکالزدایی
اگر پس از ثبت برنامه خود برای App Check ، میخواهید برنامه خود را در محیطی اجرا کنید که App Check معمولاً آن را معتبر طبقهبندی نمیکند، مانند یک شبیهساز در حین توسعه، یا از یک محیط یکپارچهسازی مداوم (CI)، میتوانید یک نسخه اشکالزدایی از برنامه خود ایجاد کنید که از ارائهدهنده اشکالزدایی App Check به جای یک ارائهدهنده گواهی واقعی استفاده میکند.
به بخش «استفاده از App Check با ارائهدهنده اشکالزدایی در پلتفرمهای اپل» مراجعه کنید.