आप ऐप चेक के साथ अपने ऐप के गैर-फायरबेस संसाधनों, जैसे स्वयं-होस्टेड बैकएंड की रक्षा कर सकते हैं। ऐसा करने के लिए, आपको निम्नलिखित दोनों कार्य करने होंगे:
- इस पृष्ठ पर वर्णित अनुसार, अपने बैकएंड को प्रत्येक अनुरोध के साथ ऐप चेक टोकन भेजने के लिए अपने ऐप क्लाइंट को संशोधित करें।
- प्रत्येक अनुरोध के साथ एक मान्य ऐप चेक टोकन की आवश्यकता के लिए अपने बैकएंड को संशोधित करें, जैसा कि कस्टम बैकएंड से ऐप चेक टोकन सत्यापित करें में वर्णित है।
शुरू करने से पहले
reCAPTCHA v3 प्रदाता , reCAPTCHA Enterprise प्रदाता , या एक कस्टम प्रदाता का उपयोग करके अपने ऐप में ऐप चेक जोड़ें।
बैकएंड अनुरोधों के साथ ऐप चेक टोकन भेजें
अपने ऐप क्लाइंट में, प्रत्येक अनुरोध से पहले, appCheck().getToken()
के साथ एक वैध, असमाप्त, ऐप चेक टोकन प्राप्त करें। यदि आवश्यक हो तो ऐप चेक लाइब्रेरी टोकन को रीफ़्रेश करेगी।
एक बार आपके पास एक वैध टोकन होने के बाद, इसे अपने बैकएंड को अनुरोध के साथ भेजें। आप इसे कैसे पूरा करते हैं, इसकी बारीकियां आप पर निर्भर हैं, लेकिन क्वेरी पैरामीटर सहित URL के भाग के रूप में ऐप चेक टोकन न भेजें , क्योंकि यह उन्हें आकस्मिक रिसाव और अवरोधन के लिए असुरक्षित बनाता है। निम्न उदाहरण कस्टम HTTP शीर्षलेख में टोकन भेजता है, जो अनुशंसित दृष्टिकोण है।
Web version 9
const { initializeAppCheck, getToken } = require('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 version 8
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. };