ใช้ App Check กับผู้ให้บริการแก้ไขข้อบกพร่องที่มี Flutter

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

แพลตฟอร์ม Apple

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

  1. เปิดใช้งาน App Check กับผู้ให้บริการแก้ไขข้อบกพร่องทันทีหลังจากที่เริ่มต้น ในแอป Firebase

    import 'package:flutter/material.dart';
    import 'package:firebase_core/firebase_core.dart';
    
    // Import the firebase_app_check plugin
    import 'package:firebase_app_check/firebase_app_check.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      await FirebaseAppCheck.instance.activate(
        // Set appleProvider to `AppleProvider.debug`
        appleProvider: AppleProvider.debug,
      );
      runApp(App());
    }
    
  2. เปิดใช้การบันทึกการแก้ไขข้อบกพร่องในโปรเจ็กต์ Xcode (v11.0 หรือใหม่กว่า):

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

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

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

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

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

Android

หากต้องการใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอป Flutter ในสภาพแวดล้อม Android ติดตั้งโค้ดต่อไปนี้ในแอปพลิเคชัน Flutter ของคุณ

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';

// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate(
    webRecaptchaSiteKey: 'recaptcha-v3-site-key',
    // Set androidProvider to `AndroidProvider.debug`
    androidProvider: AndroidProvider.debug,
  );
  runApp(App());
}

แอปของคุณจะพิมพ์โทเค็นการแก้ไขข้อบกพร่องในเครื่องไปยังเอาต์พุตการแก้ไขข้อบกพร่องเมื่อ Firebase พยายาม เพื่อส่งคำขอไปยังแบ็กเอนด์ เช่น

D DebugAppCheckProvider: Enter this debug secret into the allow list in
the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  1. ในส่วน App Check ของคอนโซล Firebase ให้เลือกจัดการโทเค็นการแก้ไขข้อบกพร่องจากส่วนของแอป เมนูรายการเพิ่มเติม จากนั้นลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องที่คุณบันทึกไว้ก่อนหน้านี้ ครั้งแรก

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

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

เว็บ

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

  1. เปิดใช้โหมดแก้ไขข้อบกพร่องโดยการตั้งค่าในไฟล์ web/index.html self.FIREBASE_APPCHECK_DEBUG_TOKEN ถึง true:

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. เรียกใช้เว็บแอปในเครื่องและเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของเบราว์เซอร์ ใน คอนโซลดีบัก คุณจะเห็นโทเค็นการแก้ไขข้อบกพร่อง

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678". You will
    need to safelist it in the Firebase console for it to work.

    โทเค็นนี้จัดเก็บอยู่ในเครื่องในเบราว์เซอร์ของคุณ และจะใช้ทุกครั้งที่คุณ ใช้แอปของคุณในเบราว์เซอร์เดียวกันบนเครื่องเดียวกัน หากคุณต้องการใช้ โทเค็นในเบราว์เซอร์อื่นหรือเครื่องอื่น ให้ตั้งค่า self.FIREBASE_APPCHECK_DEBUG_TOKEN ลงในสตริงโทเค็นแทน true

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

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

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

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