Halaman ini menunjukkan cara mengaktifkan App Check di aplikasi Apple menggunakan penyedia App Check kustom. Mengaktifkan App Check akan membantu memastikan bahwa hanya aplikasi Anda yang dapat mengakses resource Firebase project Anda.
Jika Anda ingin menggunakan App Check dengan penyedia bawaan, lihat dokumen untuk App Check dengan App Attest dan App Check dengan DeviceCheck.
Sebelum memulai
Tambahkan Firebase ke project Apple jika Anda belum melakukannya.
1. Menambahkan library App Check ke aplikasi
Tambahkan dependensi untuk App Check ke
Podfile
project Anda:pod 'FirebaseAppCheck'
Sebagai alternatif, Anda dapat menggunakan Swift Package Manager.
Selain itu, pastikan library klien layanan Firebase yang Anda gunakan sudah dalam versi terbaru.
Jalankan
pod install
, lalu buka file.xcworkspace
yang dihasilkan.
2. Menerapkan protokol App Check
Pertama, Anda harus membuat class yang menerapkan protokol AppCheckProvider
dan AppCheckProviderFactory
.
Class AppCheckProvider
Anda harus memiliki metode getToken(completion:)
, yang
mengumpulkan semua informasi yang diperlukan penyedia App Check kustom Anda sebagai
bukti keaslian, lalu mengirimkannya ke layanan akuisisi token Anda
sebagai pengganti token App Check. App Check SDK menangani penyimpanan token ke dalam cache, jadi selalu dapatkan token baru saat menerapkan getToken(completion:)
.
Swift
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
Selain itu, terapkan class AppCheckProviderFactory
yang membuat instance dari penerapan AppCheckProvider
:
Swift
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. Melakukan inisialisasi App Check
Tambahkan kode inisialisasi berikut pada delegasi aplikasi atau penginisialisasi aplikasi:
Swift
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
Langkah berikutnya
Setelah library App Check terinstal di aplikasi Anda, mulai distribusikan aplikasi yang telah diupdate kepada pengguna.
Aplikasi klien yang telah diupdate akan mulai mengirimkan token App Check beserta setiap permintaan yang dibuatnya ke Firebase. Namun, sebelum Anda mengaktifkan penerapan di bagian App Check di Firebase console, token tersebut tidak harus valid untuk produk Firebase.
Memantau metrik dan mengaktifkan penerapan
Sebelum mengaktifkan penerapan, Anda harus memastikan bahwa tindakan tersebut tidak akan mengganggu pengguna sah yang sudah ada. Di sisi lain, jika Anda melihat penggunaan resource aplikasi yang mencurigakan, sebaiknya segera aktifkan penerapan.
Untuk membantu membuat keputusan ini, Anda dapat melihat metrik App Check untuk layanan yang Anda gunakan:
- Pantau metrik permintaan App Check untuk Realtime Database, Cloud Firestore, Cloud Storage, dan Authentication (beta).
- Pantau metrik permintaan App Check untuk Cloud Functions.
Mengaktifkan penerapan App Check
Setelah memahami pengaruh App Check terhadap pengguna dan siap melanjutkan, Anda dapat mengaktifkan penerapan App Check:
- Aktifkan penerapan App Check untuk Realtime Database, Cloud Firestore, Cloud Storage, dan Authentication (beta).
- Aktifkan penerapan App Check untuk Cloud Functions.
Menggunakan App Check di lingkungan debug
Jika Anda telah mendaftarkan aplikasi untuk App Check lalu ingin menjalankan aplikasi di lingkungan yang biasanya tidak akan diklasifikasikan sebagai valid oleh App Check, seperti simulator selama pengembangan atau dari lingkungan continuous integration (CI), Anda dapat membuat build debug aplikasi yang menggunakan penyedia debug App Check, bukan penyedia pengesahan asli.
Baca bagian Menggunakan App Check dengan penyedia debug di platform Apple.