Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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.
});