Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Verifizieren Sie App Check-Token von einem benutzerdefinierten Back-End

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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