Bergabunglah dengan kami secara langsung dan online di Firebase Summit pada 18 Oktober 2022. Pelajari cara Firebase dapat membantu Anda mempercepat pengembangan aplikasi, merilis aplikasi dengan percaya diri, dan menentukan skala dengan mudah. Daftar sekarang

Aktifkan penegakan Pemeriksaan Aplikasi untuk Cloud Functions

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Ketika Anda memahami bagaimana App Check akan memengaruhi pengguna Anda dan Anda siap untuk melanjutkan, Anda dapat mengaktifkan penerapan App Check.

Untuk mulai menerapkan persyaratan token App Check di Cloud Functions Anda yang dapat dipanggil, ubah fungsi Anda untuk memeriksa token App Check yang valid, seperti yang ditunjukkan di bawah ini. Setelah Anda mengaktifkan penegakan, semua permintaan yang belum diverifikasi akan ditolak.

  1. Perbarui ketergantungan firebase-functions proyek Anda ke versi 3.14.0 atau yang lebih baru:

    npm install firebase-functions@">=3.14.0"
    

    Dan perbarui ketergantungan firebase-admin proyek Anda ke versi 9.8.0 atau yang lebih baru:

    npm install firebase-admin@">=9.8.0"
    
  2. Tambahkan tanda centang untuk context.app ke fungsi Anda. Fungsi Anda akan gagal jika context.app tidak ditentukan.

    exports.yourCallableFunction = functions.https.onCall((data, context) => {
      // context.app will be undefined if the request doesn't include an
      // App Check token. (If the request includes an invalid App Check
      // token, the request will be rejected with HTTP error 401.)
      if (context.app == undefined) {
        throw new functions.https.HttpsError(
            'failed-precondition',
            'The function must be called from an App Check verified app.')
      }
    
      // Your function logic follows.
    });
    
  3. (Opsional) Jika Anda ingin menangani token App Check yang tidak valid dengan logika Anda sendiri (misalnya, jika Anda ingin log sementara, daripada menolak, permintaan yang tidak valid sebelum mengaktifkan penegakan penuh), setel allowInvalidAppCheckToken ke true :

    exports.yourCallableFunction = functions.
      .runWith({
        allowInvalidAppCheckToken: true  // Opt-out: Requests with invalid App
                                         // Check tokens continue to your code.
      })
      .https.onCall((data, context) => {
        // Now, requests with an invalid App Check token are not rejected.
        //
        // context.app will be undefined if the request:
        //   1) Does not include an App Check token
        //   2) Includes an invalid App Check token
        if (context.app == undefined) {
          // You can inspect the raw request header to check whether an App
          // Check token was provided in the request. If you're not ready to
          // fully enable App Check yet, you could log these conditions instead
          // of throwing errors.
          const rawToken = context.rawRequest.header['X-Firebase-AppCheck'];
          if (rawToken == undefined) {
            throw new functions.https.HttpsError(
                'failed-precondition',
                'The function must be called from an App Check verified app.'
            );
          } else {
            throw new functions.https.HttpsError(
                'unauthenticated',
                'Provided App Check token failed to validate.'
            );
          }
        }
    
        // Your function logic follows.
      });
    

    Untuk mengaktifkan perlindungan App Check penuh, setel allowInvalidAppCheckToken ke false .

  4. Terapkan kembali fungsi Anda:

    firebase deploy --only functions
    

Setelah perubahan ini diterapkan, Cloud Functions Anda yang dapat dipanggil akan memerlukan token App Check yang valid. SDK klien Cloud Functions secara otomatis melampirkan token App Check saat Anda menjalankan fungsi yang dapat dipanggil.