Mulai menggunakan App Check di aplikasi Flutter

Halaman ini menunjukkan cara mengaktifkan App Check di aplikasi Flutter menggunakan penyedia default: Play Integrity di Android, Device Check di platform Apple, dan reCAPTCHA v3 di web. Mengaktifkan App Check akan membantu memastikan bahwa hanya aplikasi Anda yang dapat mengakses resource Firebase project Anda. Lihat Ringkasan fitur ini.

1. Menyiapkan project Firebase

  1. Instal dan inisialisasi FlutterFire jika Anda belum melakukannya.

  2. Daftarkan aplikasi Anda untuk menggunakan App Check dengan penyedia Play Integrity, Device Check, dan reCAPTCHA di bagian Project Settings > App Check di Firebase console.

    Anda biasanya harus mendaftarkan semua aplikasi project Anda, karena setelah penerapan untuk produk Firebase diaktifkan, hanya aplikasi terdaftar yang akan dapat mengakses resource backend produk.

  3. Opsional: Di setelan pendaftaran aplikasi, tetapkan time to live (TTL) kustom untuk token App Check yang dikeluarkan oleh penyedia. Anda dapat menetapkan TTL ke semua nilai dalam rentang 30 menit hingga 7 hari. Saat mengubah nilai ini, perhatikan pertimbangan berikut:

    • Keamanan: TTL yang lebih singkat memberikan keamanan yang lebih kuat karena mengurangi periode yang memungkinkan penyalahgunaan token yang bocor atau ditangkap oleh penyerang.
    • Performa: TTL yang lebih singkat membuat aplikasi Anda akan lebih sering melakukan pengesahan. Karena proses pengesahan aplikasi menambahkan latensi ke permintaan jaringan setiap kali dilakukan, TTL yang singkat dapat memengaruhi performa aplikasi Anda.
    • Kuota dan biaya: TTL yang lebih singkat dan pengesahan ulang yang sering dilakukan akan mengurangi kuota Anda lebih cepat, dan untuk layanan berbayar, mungkin akan menimbulkan biaya yang lebih besar. Lihat Kuota & batas.

    TTL default termasuk wajar untuk sebagian besar aplikasi. Perlu diketahui bahwa library App Check memperbarui token pada sekitar setengah dari durasi TTL.

2. Menambahkan library App Check ke aplikasi

  1. Dari root project Flutter Anda, jalankan perintah berikut untuk menginstal plugin:

    flutter pub add firebase_app_check
    
  2. Setelah selesai, build ulang aplikasi Flutter Anda:

    flutter run
    

3. Melakukan inisialisasi App Check

Tambahkan kode inisialisasi berikut ke aplikasi Anda agar berjalan sebelum Anda menggunakan layanan Firebase seperti Storage, tetapi setelah memanggil 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());
}

Langkah berikutnya

Setelah library App Check terinstal di aplikasi Anda, mulai distribusikan aplikasi yang telah diupdate kepada pengguna.

Aplikasi klien yang diupdate akan mulai mengirimkan token App Check beserta setiap permintaan yang dibuatnya ke Firebase. Namun, sebelum Anda mengaktifkan penerapan di bagian App Check di Firebase console, token tersebut tidak harus valid untuk produk Firebase.

Memantau metrik dan mengaktifkan penerapan

Sebelum mengaktifkan penerapan, Anda harus memastikan bahwa tindakan tersebut tidak akan mengganggu pengguna sah yang sudah ada. Di sisi lain, jika Anda melihat penggunaan resource aplikasi yang mencurigakan, sebaiknya segera aktifkan penerapan.

Untuk membantu membuat keputusan ini, Anda dapat melihat metrik App Check untuk layanan yang Anda gunakan:

Mengaktifkan penerapan App Check

Setelah memahami pengaruh App Check terhadap pengguna dan siap melanjutkan, Anda dapat mengaktifkan penerapan App Check:

Menggunakan App Check di lingkungan debug

Jika Anda telah mendaftarkan aplikasi untuk App Check lalu ingin menjalankan aplikasi di lingkungan yang biasanya tidak akan diklasifikasikan sebagai valid oleh App Check, misalnya emulator selama pengembangan atau dari lingkungan continuous integration (CI), Anda dapat membuat build debug aplikasi yang menggunakan penyedia debug App Check, bukan penyedia pengesahan asli.

Lihat Menggunakan App Check dengan penyedia debug di aplikasi Flutter.