Firebase is back at Google I/O on May 10! Register now

Vérifier les jetons App Check à partir d'un backend personnalisé

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Vous pouvez protéger les ressources non Firebase de votre application, telles que les backends auto-hébergés, avec App Check. Pour ce faire, vous devrez effectuer les deux opérations suivantes :

  • Modifiez votre client d'application pour envoyer un jeton App Check avec chaque demande à votre backend, comme décrit sur les pages pour iOS+ , Android et web .
  • Modifiez votre backend pour exiger un jeton App Check valide avec chaque demande, comme décrit sur cette page.

Avant que tu commences

Si vous n'avez pas encore installé le SDK d'administration Node.js , faites-le.

Vérifier les jetons

Pour vérifier les jetons App Check sur votre backend, ajoutez une logique à vos points de terminaison d'API qui effectue les opérations suivantes :

  • Vérifiez que chaque requête inclut un jeton App Check.

  • Vérifiez le jeton App Check à l'aide de la méthode appCheck().verifyToken() du SDK Admin.

    Si la vérification réussit, verifyToken() renvoie le jeton App Check décodé. Une vérification réussie indique que le jeton provient d'une application appartenant à votre projet Firebase.

Rejeter toute demande qui échoue à l'une ou l'autre des vérifications. Par exemple, en utilisant le 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.
});