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