يمكنك استخدام 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);