您可以使用 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.
});