ใช้ 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. ในส่วน Arguments Passed on Launch ให้เพิ่ม -FIRDebugEnabled
  3. เปิด ios/Runner.xcworkspace ด้วย Xcode และเรียกใช้แอปของคุณใน Simulator แอปของคุณจะพิมพ์โทเค็นการแก้ไขข้อบกพร่องในเครื่องไปยังเอาต์พุตการแก้ไขข้อบกพร่อง เมื่อ Firebase พยายามส่งคำขอไปยังแบ็กเอนด์ ตัวอย่างเช่น:

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

    สกรีนช็อตของรายการเมนูจัดการโทเค็น Debug

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

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

หุ่นยนต์

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

    สกรีนช็อตของรายการเมนูจัดการโทเค็น Debug

หลังจากที่คุณลงทะเบียนโทเค็นแล้ว บริการแบ็กเอนด์ของ 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. ในส่วน การตรวจสอบแอป ของคอนโซล Firebase ให้เลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง จากเมนูรายการเพิ่มเติมของแอป จากนั้น ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องที่คุณบันทึกไว้ในขั้นตอนก่อนหน้า

    สกรีนช็อตของรายการเมนูจัดการโทเค็น Debug

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

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