Sie können die Nicht-Firebase-Ressourcen Ihrer App, wie z. B. selbst gehostete Back-Ends, mit App Check schützen. Dazu müssen Sie die beiden folgenden Schritte ausführen:
- Ändern Sie Ihren App-Client so, dass er zusammen mit jeder Anfrage ein App-Check-Token an Ihr Backend sendet, wie auf den Seiten für iOS+ , Android und web beschrieben.
- Ändern Sie Ihr Back-End so, dass bei jeder Anfrage ein gültiges App Check-Token erforderlich ist, wie auf dieser Seite beschrieben.
Bevor Sie beginnen
Wenn Sie das Node.js Admin SDK noch nicht installiert haben, tun Sie dies jetzt.
Token überprüfen
Um App Check-Token in Ihrem Back-End zu verifizieren, fügen Sie Logik zu Ihren API-Endpunkten hinzu, die Folgendes bewirkt:
Stellen Sie sicher, dass jede Anfrage ein App Check-Token enthält.
Verifizieren Sie das App Check-Token mit der
appCheck().verifyToken()
Methode des Admin SDK.Wenn die Überprüfung erfolgreich ist,
verifyToken()
das entschlüsselte App-Check-Token zurück. Eine erfolgreiche Überprüfung zeigt an, dass das Token von einer App stammt, die zu Ihrem Firebase-Projekt gehört.
Jede Anforderung ablehnen, die eine der beiden Prüfungen nicht besteht. Beispiel: Verwendung von Express.js-Middleware:
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.
});