אתם יכולים להשתמש ב-App Check כדי להגן על משאבי קצה עורפי בהתאמה אישית שלא שייכים ל-Google באפליקציה שלכם, כמו קצה עורפי באירוח עצמי. כדי לעשות זאת, תצטרכו לבצע את שתי הפעולות הבאות:
- משנים את לקוח האפליקציה כך שישלח טוקן App Check עם כל בקשה לשרת העורפי, כמו שמתואר בדף הזה.
- משנים את הקצה העורפי כך שיידרש אסימון App Check תקין בכל בקשה, כמו שמתואר במאמר אימות אסימוני App Check מקצה עורפי בהתאמה אישית.
לפני שמתחילים
הוסף את App Check לאפליקציה שלך, באמצעות ספק reCAPTCHA Enterprise או ספק מותאם אישית.
שליחת טוקנים של App Check עם בקשות מהקצה העורפי
בלקוח האפליקציה שלך, לפני כל בקשה, קבל אסימון App Check תקף, שטרם פג תוקפו, עם appCheck().getToken(). ספריית 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);