אתם יכולים להשתמש ב-App Check כדי להגן על משאבי קצה עורפי בהתאמה אישית שאינם של Google באפליקציה שלכם, כמו קצה עורפי שמתארח באופן עצמאי. כדי לעשות זאת, תצטרכו לבצע את שתי הפעולות הבאות:
- משנים את לקוח האפליקציה כך שישלח טוקן App Check עם כל בקשה לשרת העורפי, כמו שמתואר בדף הזה.
- משנים את הקצה העורפי כך שכל בקשה תדרוש אסימון App Check תקין, כמו שמתואר במאמר אימות אסימוני App Check מקצה עורפי מותאם אישית.
לפני שמתחילים
מוסיפים את App Check לאפליקציה באמצעות ספק reCAPTCHA Enterprise או ספק בהתאמה אישית.
שליחת טוקנים של App Check עם בקשות לשרת העורפי
בצד הלקוח של האפליקציה, לפני כל בקשה, צריך לקבל טוקן תקף שלא פג תוקפו עם appCheck().getToken()
.App Check ספריית App Check תרענן את האסימון אם יהיה צורך בכך.
אחרי שיהיה לכם אסימון תקין, תצטרכו לשלוח אותו עם הבקשה לשרת העורפי. הפרטים הספציפיים של האופן שבו מבצעים את הפעולה הזו תלויים בכם, אבל אל תשלחו טוקנים של App Check כחלק מכתובות URL, כולל בפרמטרים של שאילתות, כי זה הופך אותם לפגיעים לדליפה וליירוט מקריים. בדוגמה הבאה, האסימון נשלח בכותרת HTTP מותאמת אישית, וזו הגישה המומלצת.
Web
import { initializeAppCheck, getToken } from 'firebase/app-check'; const appCheck = initializeAppCheck( app, { provider: provider } // ReCaptchaV3Provider or CustomProvider ); const callApiWithAppCheckExample = async () => { let appCheckTokenResponse; try { appCheckTokenResponse = await getToken(appCheck, /* forceRefresh= */ false); } catch (err) { // Handle any errors if the token was not retrieved. return; } // Include the App Check token with requests to your server. const apiResponse = await fetch('https://yourbackend.example.com/yourApiEndpoint', { headers: { 'X-Firebase-AppCheck': appCheckTokenResponse.token, } }); // Handle response from your backend. };
Web
const callApiWithAppCheckExample = async () => { let appCheckTokenResponse; try { appCheckTokenResponse = await firebase.appCheck().getToken(/* forceRefresh= */ false); } catch (err) { // Handle any errors if the token was not retrieved. return; } // Include the App Check token with requests to your server. const apiResponse = await fetch('https://yourbackend.example.com/yourApiEndpoint', { headers: { 'X-Firebase-AppCheck': appCheckTokenResponse.token, } }); // Handle response from your backend. };
הגנה מפני הפעלה חוזרת (בטא)
כששולחים בקשה לנקודת קצה שהפעלתם עבורה הגנה מפני שידור חוזר, צריך לקבל טוקן באמצעות getLimitedUseToken()
במקום getToken()
:
import { getLimitedUseToken } from "firebase/app-check";
// ...
appCheckTokenResponse = await getLimitedUseToken(appCheck);