Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

เริ่มต้นใช้งาน App Check ใน Flutter apps

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

1. ตั้งค่าโปรเจ็กต์ Firebase ของคุณ

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

  2. สำหรับแต่ละแพลตฟอร์มที่คุณกำลังสร้าง ให้ลงทะเบียนแอปเพื่อใช้ App Check กับผู้ให้บริการ SafetyNet (Android), Device Check (Apple) และ reCAPTCHA v3 (เว็บ) คุณสามารถทำได้ในส่วนการ ตั้งค่าโปรเจ็กต์ > การตรวจสอบแอป ของคอนโซล 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. เริ่มต้นการตรวจสอบแอป

เพิ่มรหัสเริ่มต้นต่อไปนี้ในแอปของคุณเพื่อให้ทำงานก่อนที่คุณจะใช้บริการ 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(
    webRecaptchaSiteKey: 'recaptcha-v3-site-key',  // If you're building a web app.
  );
  runApp(App());
}

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

เมื่อติดตั้งไลบรารี App Check ในแอปของคุณแล้ว ให้เริ่มแจกจ่ายแอปที่อัปเดตไปยังผู้ใช้ของคุณ

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

ตรวจสอบเมตริกและเปิดใช้การบังคับใช้

อย่างไรก็ตาม ก่อนที่คุณจะเปิดใช้การบังคับใช้ คุณควรตรวจสอบให้แน่ใจว่าการทำเช่นนั้นจะไม่รบกวนผู้ใช้ที่ถูกต้องตามกฎหมายที่มีอยู่ของคุณ ในทางกลับกัน หากคุณเห็นการใช้ทรัพยากรแอปที่น่าสงสัย คุณอาจต้องการเปิดใช้งานการบังคับใช้เร็วกว่านี้

เพื่อช่วยในการตัดสินใจนี้ คุณสามารถดูเมตริก App Check สำหรับบริการที่คุณใช้:

เปิดใช้งานการบังคับใช้การตรวจสอบแอป

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

ใช้ App Check ในสภาพแวดล้อมการดีบัก

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

ดู ใช้การตรวจสอบแอปกับผู้ให้บริการดีบักในแอป Flutter