Mediante la Verificación de aplicaciones, puedes proteger recursos de la app que no son de Firebase, como los backends autoalojados. Para ello, deberás hacer lo siguiente:
- Modifica el cliente de la app para que envíe un token de Verificación de aplicaciones junto con cada solicitud al backend, como se describe en las páginas de iOS+, Android y la Web.
- Modifica tu backend para que requiera un token válido de Verificación de aplicaciones con cada solicitud, como se describe en esta página.
Antes de comenzar
Si aún no lo has hecho, instala el SDK de Admin de Node.js.
Verifica los tokens
Agrega lógica a los extremos de la API a fin de verificar los tokens de Verificación de aplicaciones en tu backend para que haga lo siguiente:
Compruebe que cada solicitud incluya un token de la Verificación de aplicaciones.
Verifique el token de la Verificación de aplicaciones mediante el método
appCheck().verifyToken()
del SDK de Admin.Si la verificación se realiza de forma correcta,
verifyToken()
muestra el token de la Verificación de aplicaciones decodificado. La verificación correcta indica que el token se originó de una app que pertenece a tu proyecto de Firebase.
Rechaza cualquier solicitud que no cumpla con cualquiera de estos dos requisitos. Por ejemplo, si usas middleware de Express.js, haz lo siguiente:
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.
});