این صفحه به شما نشان میدهد که چگونه با استفاده از ارائهدهنده App Check سفارشی خود ، App Check در یک برنامه Apple فعال کنید. وقتی App Check فعال میکنید، مطمئن میشوید که فقط برنامه شما میتواند به منابع Firebase پروژه شما دسترسی داشته باشد.
اگر میخواهید از App Check با ارائهدهندگان داخلی استفاده کنید، به اسناد مربوط به App Check with App Attest و App Check with DeviceCheck مراجعه کنید.
قبل از شروع
اگر قبلاً این کار را نکرده اید ، Firebase را به پروژه اپل خود اضافه کنید .
منطق سمت سرور ارائه دهنده App Check سفارشی خود را پیاده سازی کنید .
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 } }
هدف-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) } }
هدف-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()
هدف-C
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
مراحل بعدی
هنگامی که کتابخانه App Check در برنامه شما نصب شد، شروع به توزیع برنامه به روز شده بین کاربران خود کنید.
برنامه کلاینت بهروزرسانیشده، به همراه هر درخواستی که به Firebase میکند، نشانههای App Check ارسال میکند، اما محصولات Firebase تا زمانی که اعمال را در بخش App Check کنسول Firebase فعال نکنید، نیازی به معتبر بودن توکنها ندارند.
معیارها را رصد کنید و اجرا را فعال کنید
با این حال، قبل از فعال کردن اعمال، باید مطمئن شوید که انجام این کار باعث اختلال در کاربران قانونی فعلی شما نمی شود. از سوی دیگر، اگر استفاده مشکوک از منابع برنامه خود را مشاهده کردید، ممکن است بخواهید زودتر اجرای آن را فعال کنید.
برای کمک به این تصمیم، میتوانید به معیارهای App Check برای سرویسهایی که استفاده میکنید نگاه کنید:
- معیارهای درخواست App Check برای Realtime Database ، Cloud Firestore ، Cloud Storage و Authentication (بتا) نظارت کنید.
- معیارهای درخواست App Check برای Cloud Functions نظارت کنید .
اجرای App Check فعال کنید
وقتی متوجه شدید که App Check چگونه بر کاربران شما تأثیر می گذارد و آماده ادامه کار هستید، می توانید اجرای App Check را فعال کنید:
- اجرای App Check برای Realtime Database ، Cloud Firestore ، Cloud Storage و Authentication (بتا) فعال کنید.
- اجرای App Check برای Cloud Functions فعال کنید .
از App Check در محیط های اشکال زدایی استفاده کنید
اگر بعد از اینکه برنامه خود را برای App Check ثبت کردید، می خواهید برنامه خود را در محیطی اجرا کنید که App Check معمولاً آن را معتبر طبقه بندی نمی کند، مانند شبیه ساز در حین توسعه، یا از یک محیط یکپارچه سازی مداوم (CI)، می توانید یک ساختار اشکال زدایی از برنامه خود ایجاد کنید که از ارائه دهنده اشکال زدایی App Check به جای ارائه دهنده گواهی واقعی استفاده می کند.
به استفاده از App Check با ارائه دهنده اشکال زدایی در پلتفرم های Apple مراجعه کنید.