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

Verificar tokens de verificação de aplicativo de um back-end personalizado

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

  • Modificar seu cliente aplicativo para enviar uma App Verifique símbolo juntamente com cada pedido para o seu back-end, como descrito nas páginas para iOS + , Android e web .
  • Modifique seu back-end para exigir um token de verificação de aplicativo válido com cada solicitação, conforme descrito nesta página.

Antes de você começar

Se você ainda não instalou o Node.js administração SDK , faça isso.

Verificar tokens

Para verificar os tokens de verificação de aplicativo 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 de verificação de aplicativo.

  • Verifique se o check App símbolo usando o Admin SDK appCheck().verifyToken() método.

    Se a verificação for bem sucedida, verifyToken() retorna a App decodificado Verifique token. A verificação bem-sucedida indica que o token se originou de um aplicativo pertencente ao seu projeto Firebase.

Rejeite qualquer solicitação que falhe em uma das verificações. Por exemplo, usando 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.
});