Você pode proteger os recursos que não são do Firebase do seu aplicativo, como back-ends auto-hospedados, com o App Check. Para fazer isso, você precisará fazer os dois procedimentos a seguir:
- Modifique seu cliente de aplicativo para enviar um token de verificação de aplicativo junto com cada solicitação para seu back-end, conforme descrito nas páginas para iOS+ , Android e web .
- Modifique seu back-end para exigir um token válido do App Check a cada solicitação, conforme descrito nesta página.
Antes de você começar
Se você ainda não instalou o Node.js Admin SDK , faça-o.
Verificar tokens
Para verificar os tokens do App Check em seu back-end, adicione uma lógica aos endpoints da API que faça o seguinte:
Verifique se cada solicitação inclui um token do App Check.
Verifique o token do App Check usando o método
appCheck().verifyToken()
do Admin SDK.Se a verificação for bem-sucedida,
verifyToken()
retornará o token de verificação de aplicativo decodificado. A verificação bem-sucedida indica que o token se originou de um aplicativo pertencente ao seu projeto do Firebase.
Rejeite qualquer solicitação que falhe em qualquer uma das verificações. Por exemplo, usando o 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.
});