Verifique os tokens do App Check de um back-end personalizado

Você pode proteger os recursos que não são do Firebase, como back-ends auto-hospedados, com o App Check. Para fazer isso, você precisará fazer o seguinte:

  • Modifique seu cliente de aplicativo para enviar um token de verificação de aplicativo junto com cada solicitação ao 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 SDK Admin do Node.js , faça-o.

Verificar tokens

Para verificar os tokens do App Check em seu back-end, adicione 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 SDK Admin.

    Se a verificação for bem-sucedida, verifyToken() retornará o token App Check decodificado. A verificação bem-sucedida indica que o token foi originado de um aplicativo pertencente ao seu projeto do Firebase.

Rejeite qualquer solicitação que falhe em 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.
});