從自定義後端驗證 App Check 令牌

您可以使用 App Check 保護應用的非 Firebase 資源,例如自託管後端。為此,您需要執行以下兩項操作:

  • iOS+Androidweb頁面中所述,修改您的應用程序客戶端以將 App Check 令牌與每個請求一起發送到您的後端。
  • 如本頁所述,修改您的後端以在每個請求中都需要一個有效的 App Check 令牌。

在你開始之前

如果您尚未安裝Node.js Admin SDK ,請安裝。

驗證令牌

要在後端驗證 App Check 令牌,請將邏輯添加到執行以下操作的 API 端點:

  • 檢查每個請求是否包含 App Check 令牌。

  • 使用 Admin SDK 的appCheck().verifyToken()方法驗證 App Check 令牌。

    如果驗證成功, verifyToken()返回解碼後的 App Check 令牌。成功驗證表明令牌來自屬於您的 Firebase 項目的應用。

拒絕任何一項檢查失敗的請求。例如,使用 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.
});