หน้านี้จะแสดงวิธีเปิดใช้ App Check ในเว็บแอปโดยใช้ผู้ให้บริการ App Check ที่กําหนดเอง เมื่อเปิดใช้ App Check คุณจะทำสิ่งต่อไปนี้ได้ ช่วยให้มั่นใจได้ว่ามีเพียงแอปของคุณเท่านั้นที่เข้าถึงทรัพยากร Firebase ของโปรเจ็กต์ได้
หากต้องการใช้ App Check กับผู้ให้บริการในตัว โปรดดูเอกสารสำหรับ App Check กับ reCAPTCHA Enterprise
ก่อนเริ่มต้น
เพิ่ม Firebase ลงในโปรเจ็กต์ JavaScript หากยังไม่ได้ดำเนินการ
ใช้ตรรกะฝั่งเซิร์ฟเวอร์ของผู้ให้บริการ App Check ที่กําหนดเอง
1. เพิ่มไลบรารี App Check ลงในแอป
เพิ่ม Firebase ไปยังเว็บแอป หากยังไม่ได้ดำเนินการ ตรวจสอบให้แน่ใจว่า เพื่อนำเข้าไลบรารี App Check
2. สร้างออบเจ็กต์ผู้ให้บริการ App Check
สร้างออบเจ็กต์ผู้ให้บริการ App Check สำหรับผู้ให้บริการที่กำหนดเอง ออบเจ็กต์นี้ต้องมีเมธอด getToken()
ซึ่งจะรวบรวมข้อมูลใดก็ตามที่ผู้ให้บริการ App Check ที่กําหนดเองต้องการใช้เป็นหลักฐานยืนยันตัวตน และส่งไปยังบริการรับโทเค็นเพื่อแลกกับโทเค็น App Check App Check SDK จะจัดการแคชโทเค็น ดังนั้นให้รับโทเค็นใหม่เสมอในการใช้งาน getToken()
Web
import { CustomProvider } from "firebase/app-check"; const appCheckCustomProvider = new CustomProvider({ getToken: () => { return new Promise((resolve, _reject) => { // TODO: Logic to exchange proof of authenticity for an App Check token and // expiration time. // ... const appCheckToken = { token: tokenFromServer, expireTimeMillis: expirationFromServer * 1000 }; resolve(appCheckToken); }); } });
Web
const appCheckCustomProvider = { getToken: () => { return new Promise((resolve, _reject) => { // TODO: Logic to exchange proof of authenticity for an App Check token and // expiration time. // ... const appCheckToken = { token: tokenFromServer, expireTimeMillis: expirationFromServer * 1000 }; resolve(appCheckToken); }); } };
3. เริ่มต้น App Check
เพิ่มโค้ดการเริ่มต้นต่อไปนี้ลงในแอปพลิเคชันก่อนเข้าถึงบริการ Firebase
Web
import { initializeApp } from "firebase/app"; import { initializeAppCheck } from "firebase/app-check"; const app = initializeApp({ // Your firebase configuration object }); const appCheck = initializeAppCheck(app, { provider: appCheckCustomProvider, // Optional argument. If true, the SDK automatically refreshes App Check // tokens as needed. isTokenAutoRefreshEnabled: true });
Web
firebase.initializeApp({ // Your firebase configuration object }); const appCheck = firebase.appCheck(); appCheck.activate( appCheckCustomProvider, // Optional argument. If true, the SDK automatically refreshes App Check // tokens as needed. true);
ขั้นตอนถัดไป
เมื่อติดตั้งไลบรารี App Check ในแอปแล้ว ให้ทำให้ใช้งานได้
แอปไคลเอ็นต์ที่อัปเดตแล้วจะเริ่มส่งโทเค็น App Check พร้อมกับคำขอทั้งหมดที่ส่งไปยัง Firebase แต่ผลิตภัณฑ์ Firebase จะไม่กำหนดให้โทเค็นต้องถูกต้องจนกว่าคุณจะเปิดใช้การบังคับใช้ในส่วน App Check ของคอนโซล Firebase
ตรวจสอบเมตริกและเปิดใช้การบังคับใช้
แต่ก่อนเปิดใช้การบังคับใช้ คุณควรตรวจสอบว่าการดำเนินการดังกล่าวจะไม่ กับผู้ใช้ที่ถูกต้องตามกฎหมายที่มีอยู่ ในทางกลับกัน หากคุณเห็นการใช้ทรัพยากรแอปที่น่าสงสัย คุณอาจต้องเปิดใช้การบังคับใช้เร็วขึ้น
เพื่อช่วยในการตัดสินใจ คุณสามารถดูเมตริก App Check สำหรับ บริการที่คุณใช้:
- ตรวจสอบเมตริกคำขอของ App Check สำหรับ Realtime Database, Cloud Firestore, Cloud Storage, Firebase Data Connect (เวอร์ชันตัวอย่าง), Authentication (เบต้า) และ Vertex AI in Firebase (เวอร์ชันตัวอย่าง)
- ตรวจสอบเมตริกคำขอของ App Check สำหรับ Cloud Functions
เปิดใช้การบังคับใช้ App Check
เมื่อเข้าใจแล้วว่า App Check จะส่งผลต่อผู้ใช้อย่างไรและพร้อม ดำเนินการต่อ คุณสามารถเปิดการบังคับใช้ App Check ได้โดยทำดังนี้
- เปิดใช้การบังคับใช้ App Check สำหรับ Realtime Database, Cloud Firestore, Cloud Storage, Firebase Data Connect (เวอร์ชันตัวอย่าง), Authentication (เบต้า) และ Vertex AI in Firebase (เวอร์ชันตัวอย่าง)
- เปิดใช้การบังคับใช้ App Check สำหรับ Cloud Functions
ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง
หากหลังจากลงทะเบียนแอปสำหรับ App Check แล้ว คุณต้องการเรียกใช้แอปในสภาพแวดล้อมที่ปกติแล้ว App Check จะไม่จัดประเภทว่าถูกต้อง เช่น ในพื้นที่ระหว่างการพัฒนา หรือจากสภาพแวดล้อมการผสานรวมอย่างต่อเนื่อง (CI) คุณสามารถสร้างบิลด์แก้ไขข้อบกพร่องของแอปที่ใช้ผู้ให้บริการแก้ไขข้อบกพร่องของ App Check แทนผู้ให้บริการตรวจสอบสิทธิ์จริง
โปรดดูหัวข้อใช้ App Check กับผู้ให้บริการแก้ไขข้อบกพร่องในเว็บแอป