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

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

หากต้องการใช้ App Check กับผู้ให้บริการที่ติดตั้งมาในตัว โปรดดูเอกสารสำหรับ App Check ด้วย App Attest และ App Check ด้วย DeviceCheck

ก่อนเริ่มต้น

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

  1. เพิ่มทรัพยากร Dependency สำหรับ 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:)

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

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

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

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

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