Firebase 将于 5 月 10 日重返 Google I/O 大会!立即报名

在自定义后端验证 App Check 令牌

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

您可以使用 App Check 来保护应用的非 Firebase 资源,例如自行托管的后端。为此,您需要执行以下两项操作:

  • 修改您的应用客户端,以将 App Check 令牌随每个请求一起发送到后端,如 iOS+AndroidWeb 对应的页面所述。
  • 按照本页所述,修改后端以要求将有效的 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.
});