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

從自定義後端驗證 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.
});