您可以使用 App Check 来保护应用的非 Firebase 资源,例如自行托管的后端。为此,您需要执行以下两项操作:
- 修改您的应用客户端,以将 App Check 令牌随每个请求一起发送到后端,如 iOS+、Android 和 Web 对应的页面所述。
- 按照本页所述,修改后端以要求将有效的 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.
});