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

Verifique los tokens de App Check desde un backend personalizado

Puedes proteger los recursos de tu aplicación que no son de Firebase, como los backends autohospedados, con App Check. Para hacerlo, deberá realizar las dos acciones siguientes:

  • Modificar su cliente aplicación para enviar una aplicación Compruebe símbolo junto con cada solicitud a su back-end, como se describe en las páginas para iOS + , Android y Web .
  • Modifique su backend para requerir un token de verificación de aplicaciones válido con cada solicitud, como se describe en esta página.

Antes de que empieces

Si no lo ha instalado el SDK del administrador Node.js , que lo hagan.

Verificar tokens

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

  • Compruebe que cada solicitud incluya un token de verificación de aplicaciones.

  • Verificar la aplicación Comprobar símbolo utilizando el SDK de administración appCheck().verifyToken() método.

    Si la verificación tiene éxito, verifyToken() devuelve el App decodificado Compruebe token. 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 dos 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.
});