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

Verifique los tokens de App Check desde un backend personalizado

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Puede proteger los recursos que no son de Firebase de su aplicación, como los backends autohospedados, con App Check. Para hacerlo, deberá hacer las dos cosas siguientes:

  • Modifique su cliente de aplicación para enviar un token de verificación de aplicación junto con cada solicitud a su backend, como se describe en las páginas para iOS+ , Android y web .
  • Modifique su backend para requerir un token de verificación de aplicación válido con cada solicitud, como se describe en esta página.

Antes de que empieces

Si aún no ha instalado el SDK de administrador de Node.js , hágalo.

Verificar fichas

Para verificar los tokens de App Check en su backend, agregue lógica a sus puntos finales de API que haga lo siguiente:

  • Verifique que cada solicitud incluya un token de verificación de la aplicación.

  • Verifique el token de App Check usando el appCheck().verifyToken() del SDK de administrador.

    Si la verificación tiene éxito, verifyToken() devuelve el token de App Check decodificado. La verificación exitosa indica que el token se originó en una aplicación que pertenece a su proyecto de Firebase.

Rechace cualquier solicitud que falle en cualquiera de las comprobaciones. Por ejemplo, usando el 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.
});