يمكنك حماية موارد تطبيقك غير المستندة إلى Firebase، مثل الخلفيات المستضافة ذاتيًا، باستخدام App Check. لإجراء ذلك، عليك تنفيذ ما يلي:
- عدِّل برنامج تشغيل تطبيقك لإرسال رمز مميَّز 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);