หน้านี้แสดงวิธีเปิดใช้งานการตรวจสอบแอปในแอป Apple โดยใช้ ผู้ให้บริการตรวจสอบแอปที่คุณกำหนดเอง เมื่อคุณเปิดใช้การตรวจสอบแอป คุณช่วยให้แน่ใจว่าแอปของคุณเท่านั้นที่สามารถเข้าถึงทรัพยากร Firebase ของโครงการได้
หากคุณต้องการใช้ App Check กับผู้ให้บริการในตัว โปรดดูเอกสารสำหรับ App Check with App Attest และ App Check with DeviceCheck
ก่อนที่คุณจะเริ่มต้น
เพิ่ม Firebase ในโครงการ Apple ของคุณ หากคุณยังไม่ได้ดำเนินการ
ใช้ตรรกะฝั่งเซิร์ฟเวอร์ของผู้ให้บริการ App Check ที่คุณกำหนดเอง
1. เพิ่มไลบรารี App Check ลงในแอปของคุณ
เพิ่มการพึ่งพาสำหรับ App Check ให้กับ
Podfile
ของโครงการของคุณ :pod 'FirebaseAppCheck'
หรืออีกทางหนึ่ง คุณสามารถใช้ Swift Package Manager แทนได้
นอกจากนี้ ตรวจสอบให้แน่ใจว่าคุณใช้ไลบรารีไคลเอ็นต์บริการ Firebase เวอร์ชันล่าสุดที่คุณใช้
เรียกใช้
pod install
และเปิดไฟล์.xcworkspace
ที่สร้างขึ้น
2. ใช้โปรโตคอลการตรวจสอบแอป
ก่อนอื่น คุณต้องสร้างคลาสที่ใช้โปรโตคอล 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(completion handler: @escaping (AppCheckToken?, Error?) -> Void) { DispatchQueue.main.async { // Logic to exchange proof of authenticity for an App Check token. // ... // Create AppCheckToken object. let exp = Date(timeIntervalSince1970: expirationFromServer) let token = AppCheckToken( token: tokenFromServer, expirationDate: exp ) // Pass the token or error to the completion handler. handler(token, nil) } } }
วัตถุประสงค์-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. เริ่มต้นการตรวจสอบแอป
เพิ่มรหัสการเริ่มต้นต่อไปนี้ในการมอบหมายแอปหรือตัวเริ่มต้นแอปของคุณ:
สวิฟต์
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
วัตถุประสงค์-C
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
ขั้นตอนถัดไป
เมื่อติดตั้งไลบรารี App Check ในแอปของคุณแล้ว ให้เริ่มแจกจ่ายแอปที่อัปเดตให้กับผู้ใช้ของคุณ
แอปไคลเอ็นต์ที่อัปเดตจะเริ่มส่งโทเค็น App Check ไปพร้อมกับทุกคำขอที่ส่งไปยัง Firebase แต่ผลิตภัณฑ์ Firebase จะไม่กำหนดให้โทเค็นถูกต้องจนกว่าคุณจะเปิดใช้งานการบังคับใช้ในส่วนการตรวจสอบแอปของคอนโซล Firebase
ตรวจสอบเมตริกและเปิดใช้งานการบังคับใช้
อย่างไรก็ตาม ก่อนที่คุณจะเปิดใช้งานการบังคับใช้ คุณควรตรวจสอบให้แน่ใจว่าการทำเช่นนั้นจะไม่รบกวนผู้ใช้ที่ถูกต้องตามกฎหมายที่มีอยู่ของคุณ ในทางกลับกัน หากคุณเห็นการใช้ทรัพยากรแอปของคุณอย่างน่าสงสัย คุณอาจต้องการเปิดใช้งานการบังคับใช้เร็วกว่านี้
เพื่อช่วยในการตัดสินใจนี้ คุณสามารถดูเมตริก App Check สำหรับบริการที่คุณใช้:
- ตรวจสอบเมตริกคำขอตรวจสอบแอป สำหรับฐานข้อมูลเรียลไทม์, Cloud Firestore, Cloud Storage และการรับรองความถูกต้อง (เบต้า)
- ตรวจสอบเมตริกคำขอ App Check สำหรับ Cloud Functions
เปิดใช้การบังคับใช้การตรวจสอบแอป
เมื่อคุณเข้าใจว่า App Check จะส่งผลต่อผู้ใช้ของคุณอย่างไร และคุณพร้อมที่จะดำเนินการต่อ คุณสามารถเปิดใช้การบังคับใช้ App Check ได้:
- เปิดใช้การบังคับใช้การตรวจสอบแอป สำหรับฐานข้อมูลเรียลไทม์, Cloud Firestore, Cloud Storage และการตรวจสอบสิทธิ์ (เบต้า)
- เปิดใช้งานการบังคับใช้การตรวจสอบแอพสำหรับฟังก์ชั่นคลาวด์
ใช้ App Check ในสภาพแวดล้อมการดีบัก
หากหลังจากลงทะเบียนแอปสำหรับ App Check แล้ว คุณต้องการเปิดใช้แอปในสภาพแวดล้อมที่ปกติแล้ว App Check จะไม่จัดว่าถูกต้อง เช่น โปรแกรมจำลองระหว่างการพัฒนา หรือจากสภาพแวดล้อมการผสานรวมอย่างต่อเนื่อง (CI) คุณสามารถ สร้างบิลด์แก้ไขข้อบกพร่องของแอปที่ใช้ผู้ให้บริการตรวจแก้จุดบกพร่อง App Check แทนผู้ให้บริการรับรองจริง
ดู ใช้การตรวจสอบแอปกับผู้ให้บริการดีบั๊กบนแพลตฟอร์มของ Apple