يمكنك حماية موارد تطبيقك التي ليست ضِمن 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);