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

Zweryfikuj tokeny App Check z niestandardowego zaplecza

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Za pomocą funkcji Sprawdzanie aplikacji możesz chronić zasoby swojej aplikacji inne niż Firebase, takie jak samodzielnie hostowane backendy. Aby to zrobić, musisz wykonać obie poniższe czynności:

  • Zmodyfikuj swojego klienta aplikacji, aby wysyłał token sprawdzania aplikacji wraz z każdym żądaniem do backendu, zgodnie z opisem na stronach dotyczących systemów iOS+ , Android i sieci Web .
  • Zmodyfikuj backend, aby wymagał prawidłowego tokena sprawdzania aplikacji przy każdym żądaniu, zgodnie z opisem na tej stronie.

Zanim zaczniesz

Jeśli nie masz jeszcze zainstalowanego pakietu Node.js Admin SDK , zrób to.

Zweryfikuj tokeny

Aby zweryfikować tokeny sprawdzania aplikacji w backendzie, dodaj logikę do punktów końcowych interfejsu API, która wykonuje następujące czynności:

  • Sprawdź, czy każde żądanie zawiera token sprawdzania aplikacji.

  • Zweryfikuj token sprawdzania aplikacji za pomocą metody appCheck().verifyToken() pakietu Admin SDK.

    Jeśli weryfikacja się powiedzie, verifyToken() zwróci zdekodowany token sprawdzania aplikacji. Pomyślna weryfikacja oznacza, że ​​token pochodzi z aplikacji należącej do Twojego projektu Firebase.

Odrzuć każde żądanie, które nie przejdzie żadnej kontroli. Na przykład przy użyciu oprogramowania pośredniego 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.
});