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