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

Verifikasi token App Check dari backend khusus

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

Anda dapat melindungi sumber daya non-Firebase aplikasi Anda, seperti backend yang dihosting sendiri, dengan App Check. Untuk melakukannya, Anda perlu melakukan kedua hal berikut:

  • Ubah klien aplikasi Anda untuk mengirim token App Check bersama setiap permintaan ke backend Anda, seperti yang dijelaskan pada laman untuk iOS+ , Android , dan web .
  • Ubah backend Anda untuk meminta token App Check yang valid dengan setiap permintaan, seperti yang dijelaskan di halaman ini.

Sebelum kamu memulai

Jika Anda belum menginstal Node.js Admin SDK , lakukanlah.

Verifikasi token

Untuk memverifikasi token App Check di backend Anda, tambahkan logika ke endpoint API Anda yang melakukan hal berikut:

  • Periksa apakah setiap permintaan menyertakan token App Check.

  • Verifikasi token App Check menggunakan metode appCheck().verifyToken() Admin SDK.

    Jika verifikasi berhasil, verifyToken() mengembalikan token App Check yang didekodekan. Verifikasi yang berhasil menunjukkan token yang berasal dari aplikasi milik proyek Firebase Anda.

Tolak permintaan apa pun yang gagal dalam pemeriksaan. Misalnya, menggunakan middleware Express.js:

const express = require('express');
const app = express();

const firebaseAdmin = require('firebase-admin');
const firebaseApp = firebaseAdmin.initializeApp();

const appCheckVerification = async (req, res, next) => {
    const appCheckToken = req.header('X-Firebase-AppCheck');

    if (!appCheckToken) {
        res.status(401);
        return next('Unauthorized');
    }

    try {
        const appCheckClaims = await firebaseAdmin.appCheck().verifyToken(appCheckToken);

        // If verifyToken() succeeds, continue with the next middleware
        // function in the stack.
        return next();
    } catch (err) {
        res.status(401);
        return next('Unauthorized');
    }
}

app.get('/yourApiEndpoint', [appCheckVerification], (req, res) => {
    // Handle request.
});