เริ่มต้นใช้งาน App Check ในแอป Flutter

หน้านี้แสดงวิธีเปิดใช้ App Check ในแอป Flutter โดยใช้ ผู้ให้บริการเริ่มต้น ได้แก่ Play Integrity ใน Android, Device Check บนแพลตฟอร์ม Apple และ reCAPTCHA v3 บนเว็บ การเปิดใช้ App Check ช่วยให้มั่นใจได้ว่า มีเพียงแอปของคุณเท่านั้นที่เข้าถึงทรัพยากร Firebase ของโปรเจ็กต์ได้ โปรดดู ภาพรวมของฟีเจอร์นี้

1. สร้างโปรเจ็กต์ Firebase

  1. ติดตั้งและเริ่มต้น FlutterFire หากยังไม่ได้ทำ ทำแล้ว

  2. ลงทะเบียนแอปเพื่อใช้ App Check กับผู้ให้บริการ Play Integrity, การตรวจสอบอุปกรณ์ และ reCAPTCHA ใน การตั้งค่าโครงการ > App Check ของคอนโซล Firebase

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

  3. ไม่บังคับ: ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งค่า Time to Live ที่กำหนดเอง (TTL) สำหรับโทเค็น App Check ที่ออกโดยผู้ให้บริการ คุณจะตั้งค่า TTL ได้ เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน เมื่อเปลี่ยนค่านี้ ทราบถึงข้อดีข้อเสียต่อไปนี้

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

    TTL เริ่มต้น เหมาะสมสำหรับแอปส่วนใหญ่ โปรดทราบว่าไลบรารี App Check จะรีเฟรช โทเค็นที่ระยะเวลาประมาณครึ่งหนึ่งของระยะเวลา TTL

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

  1. จากรูทของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน

    flutter pub add firebase_app_check
    
  2. เมื่อดำเนินการเสร็จแล้ว ให้สร้างแอปพลิเคชัน Flutter ใหม่โดยทำดังนี้

    flutter run
    

3. เริ่มต้น App Check

เพิ่มโค้ดการเริ่มต้นต่อไปนี้ลงในแอปเพื่อให้แอปทำงานก่อนคุณ ใช้บริการ Firebase เช่น Storage แต่หลังจากการเรียกใช้ Firebase.initializeApp();

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(
    // You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
    // argument for `webProvider`
    webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
    // Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
    // your preferred provider. Choose from:
    // 1. Debug provider
    // 2. Safety Net provider
    // 3. Play Integrity provider
    androidProvider: AndroidProvider.debug,
    // Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
        // your preferred provider. Choose from:
        // 1. Debug provider
        // 2. Device Check provider
        // 3. App Attest provider
        // 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
    appleProvider: AppleProvider.appAttest,
  );
  runApp(App());
}

ขั้นตอนถัดไป

เมื่อติดตั้งไลบรารี 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 กับผู้ให้บริการแก้ไขข้อบกพร่องในแอป Flutter