Catch up on everthing we announced at this year's Firebase Summit. Learn more

Verifikasi token App Check dari backend khusus

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:

  • Memodifikasi aplikasi klien Anda untuk mengirim App Periksa tanda bersama dengan setiap permintaan untuk backend Anda, seperti yang dijelaskan pada halaman 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 , melakukannya.

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 App Periksa tanda menggunakan SDK Admin appCheck().verifyToken() metode.

    Jika verifikasi berhasil, verifyToken() mengembalikan App diterjemahkan Periksa tanda. 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.
});