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

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

ใช้ผู้ให้บริการแก้ไขข้อบกพร่องในการพัฒนา

หากต้องการใช้ผู้ให้บริการแก้ไขข้อบกพร่องในขณะที่เรียกใช้แอปแบบอินเทอร์แอกทีฟ (เช่น ระหว่างการพัฒนา) ให้ทำดังนี้

  1. ในบิลด์การแก้ไขข้อบกพร่อง ให้สร้างและตั้งค่าโรงงานของผู้ให้บริการแก้ไขข้อบกพร่อง App Check ก่อนใช้บริการแบ็กเอนด์ของ Firebase ดังนี้

    Swift

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objective-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. เปิดใช้การบันทึกการแก้ไขข้อบกพร่องในโปรเจ็กต์ Xcode (v11.0 หรือใหม่กว่า):

    1. เปิดผลิตภัณฑ์ > รูปแบบ > แก้ไขรูปแบบ
    2. เลือกเรียกใช้จากเมนูด้านซ้าย แล้วเลือกแท็บอาร์กิวเมนต์
    3. ในส่วนอาร์กิวเมนต์ที่ส่งเมื่อเปิด ให้เพิ่ม -FIRDebugEnabled
  3. เปิดแอป โทเค็นการแก้ไขข้อบกพร่องในเครื่องจะได้รับการบันทึกเมื่อ SDK พยายามส่งคำขอไปยังแบ็กเอนด์ เช่น

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. ในส่วน App Check ของคอนโซล Firebase ให้เลือกจัดการโทเค็นแก้ไขข้อบกพร่องจากเมนูรายการเพิ่มเติมของแอป จากนั้นลงทะเบียนโทเค็นแก้ไขข้อบกพร่องที่คุณบันทึกไว้ในขั้นตอนก่อนหน้า

    ภาพหน้าจอของรายการเมนู "จัดการโทเค็นการแก้ไขข้อบกพร่อง"

หลังจากลงทะเบียนโทเค็นแล้ว บริการแบ็กเอนด์ของ Firebase จะถือว่าโทเค็นนั้นถูกต้อง

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

ใช้ผู้ให้บริการแก้ไขข้อบกพร่องในสภาพแวดล้อม CI

หากต้องการใช้ผู้ให้บริการแก้ไขข้อบกพร่องในสภาพแวดล้อมการรวมอย่างต่อเนื่อง (CI) ให้ทําดังนี้

  1. ในส่วน App Check ของคอนโซล Firebase ให้เลือกจัดการโทเค็นการแก้ไขข้อบกพร่องจากเมนูรายการเพิ่มเติมของแอป จากนั้นสร้างโทเค็นแก้ไขข้อบกพร่องใหม่ คุณต้องใช้โทเค็นในขั้นตอนถัดไป

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

    ภาพหน้าจอของรายการเมนู "จัดการโทเค็นการแก้ไขข้อบกพร่อง"

  2. เพิ่มโทเค็นการแก้ไขข้อบกพร่องที่คุณเพิ่งสร้างขึ้นลงในที่เก็บคีย์ที่ปลอดภัยของระบบ CI (เช่น ข้อมูลลับที่เข้ารหัสของ GitHub Actions หรือตัวแปรที่เข้ารหัสของ Travis CI)

  3. หากจําเป็น ให้กําหนดค่าระบบ CI เพื่อให้โทเค็นแก้ไขข้อบกพร่องพร้อมใช้งานภายในสภาพแวดล้อม CI เป็นตัวแปรสภาพแวดล้อม ตั้งชื่อตัวแปรเป็นAPP_CHECK_DEBUG_TOKEN_FROM_CI

  4. ใน Xcode ให้เพิ่มตัวแปรสภาพแวดล้อมลงในรูปแบบการทดสอบโดยใช้ชื่อ FIRAAppCheckDebugToken และค่าประมาณ $(APP_CHECK_DEBUG_TOKEN)

  5. กำหนดค่าสคริปต์ทดสอบ CI ให้ส่งโทเค็นแก้ไขข้อบกพร่องเป็นตัวแปรสภาพแวดล้อม เช่น

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. ในบิลด์แก้ไขข้อบกพร่อง ให้สร้างและตั้งค่าApp Check Debug Provider Factory ดังนี้ก่อนใช้บริการแบ็กเอนด์ Firebase

    Swift

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objective-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];

เมื่อแอปของคุณทำงานในสภาพแวดล้อม CI บริการแบ็กเอนด์ของ Firebase จะยอมรับโทเค็นที่แอปส่งมาว่าถูกต้อง