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

หน้านี้แสดงวิธีเปิดใช้งาน App Check ในแอพ Apple โดยใช้ ผู้ให้บริการ App Check ที่คุณกำหนดเอง เมื่อคุณเปิดใช้ App Check คุณช่วยให้แน่ใจว่ามีเพียงแอปของคุณเท่านั้นที่สามารถเข้าถึงทรัพยากร 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. ใช้โปรโตคอล 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. เริ่มต้นการตรวจสอบแอป

เพิ่มรหัสการเริ่มต้นต่อไปนี้ให้กับตัวแทนแอปหรือตัวเริ่มต้นแอปของคุณ:

สวิฟท์

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 จะไม่ต้องการให้โทเค็นนั้นถูกต้องจนกว่าคุณจะเปิดใช้งานการบังคับใช้ในส่วน App Check ของคอนโซล Firebase

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

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

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

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

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

ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง

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

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