หน้านี้แสดงวิธีเปิดใช้ App Check ในแอป Apple โดยใช้ ผู้ให้บริการ App Check ที่กำหนดเอง เมื่อเปิดใช้ App Check ช่วยให้มั่นใจได้ว่ามีเพียงแอปของคุณเท่านั้นที่เข้าถึงทรัพยากร Firebase ของโปรเจ็กต์ได้
หากต้องการใช้ App Check กับผู้ให้บริการที่ติดตั้งมาในตัว โปรดดูเอกสารสำหรับ App Check ด้วย App Attest และ App Check ด้วย DeviceCheck
ก่อนเริ่มต้น
เพิ่ม Firebase ลงในโปรเจ็กต์ Apple หากยังไม่ได้เพิ่ม ทำแล้ว
ใช้ตรรกะฝั่งเซิร์ฟเวอร์ของผู้ให้บริการ App Check ที่กำหนดเอง
1. เพิ่มไลบรารี App Check ลงในแอป
เพิ่มทรัพยากร Dependency สำหรับ 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:)
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
และใช้คลาส AppCheckProviderFactory
ที่สร้างอินสแตนซ์ของ
การใช้งาน 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. เริ่มต้น App Check
เพิ่มโค้ดการเริ่มต้นต่อไปนี้ลงในผู้รับมอบสิทธิ์แอปหรือแอปเริ่มต้น
Swift
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
ขั้นตอนถัดไป
เมื่อติดตั้งไลบรารี App Check ในแอปแล้ว ให้เริ่มเผยแพร่ ที่อัปเดตให้กับผู้ใช้
แอปไคลเอ็นต์ที่อัปเดตจะเริ่มส่งโทเค็น App Check พร้อมกับ ส่งคำขอไปยัง Firebase แต่ผลิตภัณฑ์ Firebase ไม่จำเป็นต้องใช้โทเค็น จะยังมีผลจนกว่าคุณจะเปิดใช้การบังคับใช้ในส่วน App Check ของ คอนโซล Firebase
ตรวจสอบเมตริกและเปิดใช้การบังคับใช้
แต่ก่อนเปิดใช้การบังคับใช้ คุณควรตรวจสอบว่าการดำเนินการดังกล่าวจะไม่ กับผู้ใช้ที่ถูกต้องตามกฎหมายที่มีอยู่ ในทางกลับกัน ถ้าคุณเห็น การใช้ทรัพยากรแอปของคุณที่น่าสงสัย คุณอาจต้องเปิดใช้การบังคับใช้ เร็วขึ้น
โปรดดูเมตริก App Check สำหรับ บริการที่คุณใช้:
- ตรวจสอบเมตริกคำขอ App Check เพื่อหา Realtime Database, Cloud Firestore, Cloud Storage และการตรวจสอบสิทธิ์ (เบต้า)
- ตรวจสอบเมตริกคำขอ App Check สำหรับ Cloud Functions
เปิดใช้การบังคับใช้ App Check
เมื่อเข้าใจว่า App Check จะส่งผลต่อผู้ใช้อย่างไรและพร้อมจะ การดำเนินการต่อก็เปิดใช้การบังคับใช้ App Check ได้โดยทำดังนี้
- เปิดใช้การบังคับใช้ App Check สำหรับ Realtime Database, Cloud Firestore, Cloud Storage และการตรวจสอบสิทธิ์ (เบต้า)
- เปิดใช้การบังคับใช้ App Check สำหรับ Cloud Functions
ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง
หลังจากลงทะเบียนแอปสำหรับ App Check แล้ว คุณต้องการเรียกใช้ แอปในสภาพแวดล้อมที่ App Check มักจะไม่จัดว่า "ถูกต้อง" เช่น เครื่องมือจำลองระหว่างการพัฒนา หรือจากการรวมอย่างต่อเนื่อง (CI) คุณสามารถสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ ผู้ให้บริการแก้ไขข้อบกพร่องของ App Check แทนที่จะเป็นผู้ให้บริการเอกสารรับรองจริง
โปรดดูหัวข้อใช้ App Check กับผู้ให้บริการแก้ไขข้อบกพร่องในแพลตฟอร์มของ Apple