เริ่มต้นใช้งาน App Check กับผู้ให้บริการแบบกำหนดเองบนแพลตฟอร์ม Apple

หน้านี้แสดงวิธีเปิดใช้งานการตรวจสอบแอปในแอป Apple โดยใช้ ผู้ให้บริการตรวจสอบแอปที่คุณกำหนดเอง เมื่อคุณเปิดใช้การตรวจสอบแอป คุณช่วยให้แน่ใจว่าแอปของคุณเท่านั้นที่สามารถเข้าถึงทรัพยากร Firebase ของโครงการได้

หากคุณต้องการใช้ App Check กับผู้ให้บริการในตัว โปรดดูเอกสารสำหรับ App Check with App Attest และ App Check with DeviceCheck

ก่อนที่คุณจะเริ่มต้น

1. เพิ่มไลบรารี App Check ลงในแอปของคุณ

  1. เพิ่มการพึ่งพาสำหรับ App Check ให้กับ Podfile ของโครงการของคุณ :

    pod 'FirebaseAppCheck'

    หรืออีกทางหนึ่ง คุณสามารถใช้ Swift Package Manager แทนได้

    นอกจากนี้ ตรวจสอบให้แน่ใจว่าคุณใช้ไลบรารีไคลเอ็นต์บริการ Firebase เวอร์ชันล่าสุดที่คุณใช้

  2. เรียกใช้ 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 สำหรับบริการที่คุณใช้:

เปิดใช้การบังคับใช้การตรวจสอบแอป

เมื่อคุณเข้าใจว่า App Check จะส่งผลต่อผู้ใช้ของคุณอย่างไร และคุณพร้อมที่จะดำเนินการต่อ คุณสามารถเปิดใช้การบังคับใช้ App Check ได้:

ใช้ App Check ในสภาพแวดล้อมการดีบัก

หากหลังจากลงทะเบียนแอปสำหรับ App Check แล้ว คุณต้องการเปิดใช้แอปในสภาพแวดล้อมที่ปกติแล้ว App Check จะไม่จัดว่าถูกต้อง เช่น โปรแกรมจำลองระหว่างการพัฒนา หรือจากสภาพแวดล้อมการผสานรวมอย่างต่อเนื่อง (CI) คุณสามารถ สร้างบิลด์แก้ไขข้อบกพร่องของแอปที่ใช้ผู้ให้บริการตรวจแก้จุดบกพร่อง App Check แทนผู้ให้บริการรับรองจริง

ดู ใช้การตรวจสอบแอปกับผู้ให้บริการดีบั๊กบนแพลตฟอร์มของ Apple