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

Verifica i token di App Check da un back-end personalizzato

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Puoi proteggere le risorse non Firebase della tua app, come i backend self-hosted, con App Check. Per fare ciò, dovrai eseguire entrambe le seguenti operazioni:

  • Modifica il client dell'app per inviare un token App Check insieme a ogni richiesta al tuo back-end, come descritto nelle pagine per iOS+ , Android e Web .
  • Modifica il tuo backend per richiedere un token App Check valido con ogni richiesta, come descritto in questa pagina.

Prima di iniziare

Se non hai già installato Node.js Admin SDK , fallo.

Verifica i token

Per verificare i token di App Check sul tuo back-end, aggiungi la logica agli endpoint dell'API che esegue le seguenti operazioni:

  • Verifica che ogni richiesta includa un token App Check.

  • Verifica il token App Check utilizzando il metodo appCheck().verifyToken() di Admin SDK.

    Se la verifica ha esito positivo, verifyToken() restituisce il token di controllo app decodificato. La verifica riuscita indica che il token ha avuto origine da un'app appartenente al tuo progetto Firebase.

Rifiuta qualsiasi richiesta che non supera uno dei due controlli. Ad esempio, utilizzando il 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.
});