คุณปกป้องทรัพยากรที่ไม่ใช่ Firebase ของแอปได้ เช่น แบ็กเอนด์ที่โฮสต์เองด้วย App Check ในการทำเช่นนั้น คุณจะต้องทำทั้งสองอย่างต่อไปนี้:
- แก้ไขไคลเอ็นต์แอปของคุณเพื่อส่งโทเค็น App Check ไปพร้อมกับคำขอแต่ละรายการไปยังแบ็กเอนด์ของคุณ ตามที่อธิบายไว้ในหน้าสำหรับ iOS+ , Android และ เว็บ
- แก้ไขแบ็กเอนด์ของคุณเพื่อกำหนดให้ใช้โทเค็นการตรวจสอบแอปที่ถูกต้องกับทุกคำขอ ตามที่อธิบายไว้ในหน้านี้
ก่อนจะเริ่ม
หากคุณยังไม่ได้ติดตั้ง Node.js Admin SDK ให้ดำเนินการดังกล่าว
ยืนยันโทเค็น
ในการตรวจสอบโทเค็น App Check บนแบ็กเอนด์ของคุณ ให้เพิ่มตรรกะให้กับปลายทาง API ของคุณที่ทำสิ่งต่อไปนี้:
ตรวจสอบว่าคำขอแต่ละรายการมีโทเค็นการตรวจสอบแอป
ตรวจสอบโทเค็นการตรวจสอบแอปโดยใช้
appCheck().verifyToken()
ของ Admin SDKหากการตรวจสอบสำเร็จ
verifyToken()
จะส่งคืนโทเค็นการตรวจสอบแอปที่ถอดรหัสแล้ว การยืนยันที่สำเร็จระบุว่าโทเค็นนั้นมาจากแอปที่เป็นของโปรเจ็กต์ 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.
});