‫Codelab‏ App Check وب

۱. مقدمه

آخرین به‌روزرسانی: ۲۰۲۳-۰۲-۲۳

چگونه می‌توانید از دسترسی غیرمجاز به منابع Firebase خود جلوگیری کنید؟

می‌توانید از بررسی برنامه Firebase استفاده کنید تا با الزام درخواست‌های ورودی به داشتن گواهی مبنی بر اینکه درخواست از برنامه واقعی شما ارسال شده است و با مسدود کردن ترافیکی که گواهی مناسب ندارد، از دسترسی مشتریان غیرمجاز به منابع پس‌بک خود جلوگیری کنید. «بررسی برنامه Firebase» برای درستی‌سنجی کردن اصالت کارخواه به ارائه‌دهندگان گواهی مختص پلاتفرم متکی است: برای برنامه‌های وب، «بررسی برنامه» از reCAPTCHA نسخه ۳ و reCAPTCHA Enterprise به‌عنوان ارائه‌دهندگان گواهی پشتیبانی می‌کند.

از «بررسی برنامه» می‌توان برای محافظت از درخواست‌ها به Cloud Firestore،‏ Realtime Database،‏ Cloud Functions،‏ Firebase Authentication با Identity Platform، و در پس‌اندهایی که خودتان میزبانی می‌کنید استفاده کرد.

آنچه خواهید ساخت

در این codelab، ابتدا با افزودن و سپس با اعمال «بررسی برنامه»، یک برنامه گپ را ایمن می‌کنید.

برنامه گپ دوستانه شروع که توسط شما ساخته شده است.

آنچه خواهید آموخت

  • نحوه نظارت بر باطن برای دسترسی غیرمجاز
  • نحوه افزودن اجرای قانون به Firestore و Cloud Storage
  • نحوه اجرای برنامه با یک کد اشکال‌زدایی برای توسعه محلی

آنچه نیاز خواهید داشت

  • IDE/ویرایشگر نوشتار موردنظرتان
  • مدیر بسته npm که معمولاً با Node.js ارائه می‌شود
  • واسط خط فرمان Firebase نصب و پیکربندی شده است تا با حساب شما کار کند
  • پایانه/کنسول
  • مرورگری به انتخاب خودتان، مثلاً Chrome
  • کد نمونه codelab (برای نحوه دریافت کد، به مرحله بعدی codelab مراجعه کنید.)

۲. دریافت کدگذاری نمونه

مخزن GitHub codelab را از خط فرمان شبیه‌سازی کنید:

git clone https://github.com/firebase/codelab-friendlychat-web

یا اگر Git را نصب نکرده‌اید، می‌توانید مخزن را به‌صورت فایل ZIP بارگیری کنید.

وارد کردن برنامه آغازگر

بااستفاده از IDE، دایرکتوری 📁 appcheck-start را از مخزن کلون‌شده باز یا وارد کنید. این دایرکتوری 📁 appcheck-start حاوی کد شروع برای codelab است که یک برنامه وب گپ کاملاً کاربردی خواهد بود. دایرکتوری 📁 appcheck کد تکمیل‌شده برای codelab را خواهد داشت.

۳. ایجاد و راه‌اندازی پروژه Firebase

ایجاد پروژه Firebase

  1. بااستفاده از «حساب Google» خود به سیستم کنسول Firebase وارد شوید.
  2. برای ایجاد پروژه جدید، روی دکمه کلیک کنید و سپس نام پروژه را وارد کنید (برای مثال، FriendlyChat).
  3. روی ادامه کلیک کنید.
  4. اگر درخواست شد، شرایط Firebase را مرور و قبول کنید، سپس روی ادامه کلیک کنید.
  5. (اختیاری) «کمک هوش مصنوعی» را در کنسول Firebase (به‌نام «Gemini در Firebase») فعال کنید.
  6. برای این codelab، به Google Analytics نیاز ندارید، بنابراین گزینه Google Analytics را خاموش کنید.
  7. روی ایجاد پروژه کلیک کنید، منتظر بمانید تا پروژه‌تان آماده شود، سپس روی ادامه دادن کلیک کنید.

ارتقا دادن طرح قیمت‌گذاری Firebase

برای استفاده از «فضای ذخیره‌سازی ابری ویژه Firebase»، پروژه Firebase شما باید در طرح قیمت‌گذاری پرداخت به اندازه استفاده (Blaze) باشد، یعنی به حساب Cloud Billing پیوند شده باشد.

  • حساب Cloud Billing به روش پرداخت، مانند کارت اعتباری، نیاز دارد.
  • اگر تازه با Firebase و Google Cloud آشنا شده‌اید، بررسی کنید که آیا واجدشرایط اعتبار ۳۰۰ دلاری و حساب «صورت‌حساب Cloud» دوره آزمایشی رایگان هستید یا نه.
  • اگر این codelab را به‌عنوان بخشی از یک رویداد انجام می‌دهید، از سازمان‌دهنده خود بپرسید که آیا اعتبار Cloud دردسترس است یا نه.

برای ارتقا دادن پروژه‌تان به طرح Blaze، این مراحل را دنبال کنید:

  1. در کنسول Firebase، گزینه ارتقای طرح را انتخاب کنید.
  2. طرح Blaze را انتخاب کنید. دستورالعمل‌های روی صفحه را برای پیوند دادن حساب Cloud Billing به پروژه‌تان دنبال کنید.
    اگر لازم بود حساب Cloud Billing را به‌عنوان بخشی از این ارتقا ایجاد کنید، ممکن است لازم باشد برای تکمیل ارتقا به جریان ارتقا در کنسول Firebase برگردید.

افزودن برنامه وب Firebase به پروژه

  1. روی نماد وب 58d6543a156e56f9.png کلیک کنید تا برنامه وب Firebase جدیدی ایجاد کنید.
  2. برنامه را با نام مستعار Friendly Chat ثبت کنید، سپس چارگوش کنار همچنین «میزبانی Firebase» را برای این برنامه راه‌اندازی کنید را علامت بزنید. روی ثبت برنامه کلیک کنید.
  3. در مرحله بعد، فرمانی برای نصب Firebase بااستفاده از npm و شیء پیکربندی خواهید دید. این شیء را بعداً در codelab کپی می‌کنید، بنابراین فعلاً روی بعدی کلیک کنید.

پنجره افزودن Firebase به برنامه وب

  1. سپس گزینه‌ای برای نصب کردن «واسط خط فرمان Firebase» می‌بینید. اگر قبلاً آن را نصب نکرده‌اید، اکنون بااستفاده از فرمان npm install -g firebase-tools این کار را انجام دهید. سپس روی بعدی کلیک کنید.
  2. سپس گزینه‌ای برای ورود به سیستم Firebase و استقرار در میزبانی Firebase می‌بینید. بااستفاده از فرمان firebase login به سیستم Firebase وارد شوید، سپس روی ادامه دادن به کنسول کلیک کنید. در مرحله بعدی، در میزبانی Firebase مستقر می‌شوید.

راه‌اندازی محصولات Firebase

برنامه‌ای که می‌خواهیم بسازیم از محصولات Firebase استفاده می‌کند که برای برنامه‌های وب دردسترس است:

  • اصالت‌سنجی Firebase برای اینکه کاربران شما بتوانند به‌راحتی به سیستم برنامه‌تان وارد شوند.
  • Cloud Firestore برای ذخیره داده‌های ساختاریافته در فضای ابری و دریافت اعلان فوری هنگام تغییر داده‌ها.
  • فضای ذخیره‌سازی ابری ویژه Firebase برای ذخیره کردن فایل‌ها در فضای ابری.
  • میزبانی Firebase برای میزبانی و ارائه دارایی‌های شما.
  • پیام‌رسانی ابریِ Firebase برای ارسال اعلان‌های لحظه‌ای و نمایش اعلان‌های بالاپر مرورگر.
  • پایشگر کارایی Firebase برای جمع‌آوری داده‌های عملکرد کاربر برای برنامه شما.

برخی‌از این محصولات به پیکربندی خاصی نیاز دارند یا باید بااستفاده از کنسول Firebase فعال شوند.

فعال کردن «ورود به سیستم با Google» برای «اصالت‌سنجی Firebase»

برای اینکه کاربران بتوانند با حساب‌های Google خود به سیستم برنامه وب وارد شوند، از روش ورود به سیستم Google استفاده خواهیم کرد.

باید «ورود به سیستم با Google» را فعال کنید:

  1. در کنسول Firebase، بخش ساخت را در پانل سمت راست پیدا کنید.
  2. روی اصالت‌سنجی کلیک کنید، درصورت وجود روی شروع به کار کلیک کنید، سپس روی برگه روش ورود به سیستم کلیک کنید (یا اینجا کلیک کنید تا مستقیماً به آنجا بروید).
  3. فعال کردن ارائه‌دهنده ورود به سیستم Google
  4. نام عمومی برنامه‌تان را روی Friendly Chat تنظیم کنید و ایمیل پشتیبانی پروژه را از منوِ کرکره‌ای انتخاب کنید.
  5. روی ذخیره کلیک کنید

f96888973c3d00cc.png

راه‌اندازی Cloud Firestore

برنامه وب از Cloud Firestore برای ذخیره پیام‌های گپ و دریافت پیام‌های گپ جدید استفاده می‌کند.

نحوه راه‌اندازی Cloud Firestore در پروژه Firebase به این صورت است:

  1. در پانل سمت راست کنسول Firebase، ساخت را ازهم باز کنید و سپس پایگاه داده Firestore را انتخاب کنید.
  2. روی ایجاد پایگاه داده کلیک کنید.
  3. شناسه پایگاه داده را روی (default) بگذارید.
  4. مکانی را برای پایگاه داده‌تان انتخاب کنید، سپس روی بعدی کلیک کنید.
    برای برنامه واقعی، باید مکانی را انتخاب کنید که به کاربران شما نزدیک باشد.
  5. روی شروع در حالت آزمایشی کلیک کنید. بیانیه سلب مسئولیت درباره قوانین امنیتی را بخوانید.
    بعداً در این codelab، برای ایمن کردن داده‌هایتان «قوانین امنیتی» اضافه خواهید کرد. برنامه را بدون افزودن «قوانین امنیتی» برای پایگاه داده‌تان به‌طور عمومی توزیع یا افشا نکنید.
  6. روی ایجاد کردن کلیک کنید.

راه‌اندازی فضای ذخیره‌سازی ابری ویژه Firebase

برنامه وب از «فضای ذخیره‌سازی ابری ویژه Firebase» برای ذخیره کردن، بارگذاری کردن، و هم‌رسانی کردن تصاویر استفاده می‌کند.

نحوه راه‌اندازی «فضای ذخیره‌سازی ابری ویژه Firebase» در پروژه Firebase به این صورت است:

  1. در پانل سمت راست کنسول Firebase، Build (ساخت) را ازهم باز کنید و سپس Storage (فضای ذخیره‌سازی) را انتخاب کنید.
  2. روی شروع به کار کلیک کنید.
  3. مکانی برای دسته پیش‌فرض «فضای ذخیره‌سازی» انتخاب کنید.
    دسته‌ها در US-WEST1، US-CENTRAL1، و US-EAST1 می‌توانند از سطح «همیشه رایگان» برای Google Cloud Storage استفاده کنند. دسته‌ها در همه مکان‌های دیگر از قیمت‌گذاری و استفاده Google Cloud Storage پیروی می‌کنند.
  4. روی شروع در حالت آزمایشی کلیک کنید. بیانیه سلب مسئولیت درباره قوانین امنیتی را بخوانید.
    در ادامه این codelab، قوانین امنیتی را برای ایمن کردن داده‌هایتان اضافه خواهید کرد. بدون افزودن «قوانین امنیتی» برای دسته «فضای ذخیره‌سازی»، برنامه را به‌طور عمومی توزیع یا افشا نکنید.
  5. روی ایجاد کردن کلیک کنید.

۴. پیکربندی Firebase

از فهرست راهنمای appcheck-start، با این شماره تماس بگیرید:

firebase use --add

وقتی درخواست شد، «شناسه پروژه» را انتخاب کنید، سپس نام مستعاری برای پروژه Firebase خود انتخاب کنید. برای این پروژه، فقط می‌توانید نام مستعار پیش‌فرض را ارائه دهید. سپس باید پروژه محلی‌تان را برای کار با Firebase پیکربندی کنید.

  1. به تنظیمات پروژه در کنسول Firebase بروید
  2. در کارت «برنامه‌های شما»، نام مستعار برنامه‌ای را که برای آن به شیء پیکربندی نیاز دارید انتخاب کنید.
  3. پیکربندی را از قاب قطعه کیت توسعه نرم‌افزار Firebase انتخاب کنید.
  4. تکه‌کد شیء پیکربندی را کپی کنید، سپس آن را به appcheck-start/hosting/src/firebase-config.js اضافه کنید. بقیه codelab فرض می‌کند که نام متغیر config است.

firebase-config.js

const config = {
  apiKey: "API_KEY",
  authDomain: "PROJECT_ID.firebaseapp.com",
  databaseURL: "https://PROJECT_ID.firebaseio.com",
  projectId: "PROJECT_ID",
  storageBucket: "PROJECT_ID.firebasestorage.app",
  messagingSenderId: "SENDER_ID",
  appId: "APP_ID",
  measurementId: "G-MEASUREMENT_ID",
};

از همان فهرست راهنمای appcheck-start، سپس تماس بگیرید:

firebase experiments:enable webframeworks

این کار پشتیبانی از چارچوب وب را فعال می‌کند که این پروژه با آن ساخته شده است.

اکنون باید آماده باشیم تا پروژه‌تان را اجرا کنیم و آزمایش کنیم که پروژه پیش‌فرض کار می‌کند!

۵. امتحان کردن برنامه بدون «بررسی برنامه»

اکنون که برنامه‌تان را پیکربندی کرده‌اید و کیت توسعه نرم‌افزار را راه‌اندازی کرده‌اید، سعی کنید از برنامه همان‌طور که در ابتدا طراحی شده بود استفاده کنید. ابتدا، با نصب همه وابستگی‌ها شروع کنید. از پایانه‌تان، به فهرست راهنمای appcheck-start/hosting بروید. وقتی در آن دایرکتوری هستید، npm install را اجرا کنید. این کار همه وابستگی‌های لازم برای کار کردن پروژه‌تان را واکشی می‌کند. برای شروع برنامه در وضعیت فعلی آن، می‌توانید firebase serve را اجرا کنید. برنامه از شما می‌خواهد با حساب Google به سیستم وارد شوید؛ این کار را انجام دهید و سپس چند پیام گپ و چند عکس در گپ پست کنید.

اکنون که آن را به‌صورت محلی آزمایش کرده‌اید، وقت آن است که آن را در تولید ببینید! firebase deploy را اجرا کنید تا برنامه وب در وب مستقر شود. این بخش گامی حیاتی در نمایش نحوه عملکرد «بررسی برنامه» در دنیای واقعی است، زیرا نیاز به پیکربندی دامنه‌ای برای ارائه‌دهنده گواهی reCAPTCHA Enterprise دارد.

امیدواریم از قابلیت پیش‌فرضی که برنامه ارائه می‌دهد استفاده کنید. پست کردن پیام‌های گپ و هر چیز دیگری که فقط باید از برنامه‌ای مثل این انجام شود. نکته منفی وضعیت فعلی این است که هرکسی که پیکربندی برنامه شما را از مرحله قبلی داشته باشد می‌تواند به منابع پسای شما دسترسی پیدا کند. آن‌ها همچنان باید از قوانین امنیتی که توسط سیستم‌های Firestore و Cloud Storage شما اعمال شده‌اند پیروی کنند، اما درغیراین‌صورت، همچنان می‌توانند داده‌های ذخیره‌شده در آنجا را پُرسمان، ذخیره، و به آن‌ها دسترسی پیدا کنند.

در چند مرحله بعدی، این کارها را انجام خواهید داد:

  • ثبت‌نام برای App Check
  • اعتبارسنجی اجرا
  • شروع اجرای قوانین

‫۶. روشن کردن «بررسی برنامه» و اجرای آن

بیایید با دریافت «کلید سازمانی reCAPTCHA» برای پروژه‌تان و افزودن آن به «بررسی برنامه» شروع کنیم. با رفتن به بخش reCAPTCHA Enterprise در «کنسول Google Cloud» شروع می‌کنید. پروژه‌تان را انتخاب کنید و سپس از شما خواسته می‌شود reCAPTCHA Enterprise API را فعال کنید. API را فعال کنید و چند دقیقه صبر کنید تا فرایند تکمیل شود. سپس روی ایجاد کلید در کنار کلیدهای Enterprise کلیک کنید. سپس در این بخش، نام نمایشی را مشخص کنید و کلید نوع وب‌سایت را انتخاب کنید. باید دامنه‌هایی را که برنامه‌تان در آن‌ها میزبانی می‌شود مشخص کنید. ازآنجایی‌که قصد دارید این را در «میزبانی Firebase» میزبانی کنید، از نام میزبانی پیش‌فرض استفاده می‌کنید که معمولاً ${YOUR_PROJECT_ID}.web.app است. می‌توانید دامنه میزبانی‌تان را در بخش میزبانی «کنسول Firebase» پیدا کنید. پس‌از تکمیل این اطلاعات، تمام و ایجاد کلید را فشار دهید.

صفحه ایجاد کلید reCAPTCHA

پس‌از تکمیل، شناسه‌ای را در بالای صفحه جزئیات کلید می‌بینید.

پنجره ثبت‌نام reCAPTCHA Enterprise

می‌توانید این شناسه را در بریده‌دان کپی کنید. این کلیدی است که برای «بررسی برنامه» استفاده می‌کنید. سپس، به بخش بررسی برنامه در کنسول Firebase بروید و روی شروع به کار کلیک کنید. سپس روی ثبت‌نام و سپس روی reCAPTCHA Enterprise کلیک کنید و شناسه کپی‌شده را در چارگوش نوشتاری کلید سایت reCAPTCHA Enterprise قرار دهید. بقیه تنظیمات را به‌صورت پیش‌فرض رها کنید. صفحه App Check شما باید چیزی شبیه به این باشد:

پنجره برنامه‌های «بررسی برنامه» که در آن کد سازمانی reCAPTCHA خود را ثبت می‌کنید

درخواست‌های تأییدنشده و اجرا‌نشده

اکنون که کلید ثبت‌شده‌ای در کنسول Firebase دارید، با اجرای firebase serve به اجرای سایتتان در مرورگر برگردید. در اینجا برنامه وب را به‌صورت محلی اجرا می‌کنید و می‌توانید دوباره درخواست‌های خود را به Firebase backend ارسال کنید. ازآنجایی‌که درخواست‌ها به باطن Firebase ارسال می‌شوند، این درخواست‌ها توسط «بررسی برنامه» پایش می‌شوند اما اعمال نمی‌شوند. اگر می‌خواستید وضعیت درخواست‌های دریافتی را ببینید، می‌توانید به بخش Cloud Firestore در برگه میاناهای برنامه‌سازی کاربردی در صفحه App Check در کنسول Firebase مراجعه کنید. ازآنجایی‌که هنوز کارخواه را برای استفاده از «بررسی برنامه» پیکربندی نکرده‌اید، باید چیزی شبیه به این ببینید:

داشبورد «بررسی برنامه» که نشان می‌دهد ۱۰۰٪ درخواست‌های کارخواه برای برنامه شما تأیید نشده است.

‫۱۰۰٪ درخواست‌های ورودی به پس‌بست تأیید نشده است. این صفحه مفید است زیرا نشان می‌دهد که تقریباً همه درخواست‌های کارخواه از کارخواه‌هایی می‌آیند که «بررسی برنامه» در آن‌ها ادغام نشده است.

این داشبورد می‌تواند چند چیز را نشان دهد. اولین چیزی که می‌تواند نشان دهد این است که آیا همه برنامه‌های کارخواه شما جدیدترین نسخه کارخواهتان را اجرا می‌کنند یا نه. اگر این‌طور باشد، می‌توانید با اطمینان «بررسی برنامه» را اجرا کنید بدون اینکه نگران خاموش کردن دسترسی برای کارخواه واقعی برنامه‌تان باشید. چیز دیگری که این اطلاعات ممکن است به شما بگوید این است که چند تلاش برای دسترسی به زیرینه شما بدون اینکه از داخل برنامه‌تان باشد انجام شده است. این‌ها ممکن است کاربرانی باشند که بدون اطلاع شما مستقیماً از زیرینه شما پُرسمان می‌کنند. ازآنجایی‌که می‌توانید ببینید درخواست‌ها تأیید نشده‌اند، وقت آن است که ببینید چه اتفاقی برای کاربرانی می‌افتد که ممکن است درخواست تأییدنشده‌ای به پسای شما داشته باشند، قبل‌از اینکه درخواست‌هایشان را تأیید کنید.

درخواست‌های درستی‌سنجی‌نشده و اجراشده

ادامه دهید و دکمه اجرا کردن را در صفحه قبلی فشار دهید و سپس درصورت درخواست، دوباره اجرا کردن را فشار دهید.

داشبورد سنجه‌های تأییدنشده با دکمه «اجرا» که برجسته شده است

با این کار، «بررسی برنامه» اجرا خواهد شد؛ اکنون درخواست‌های ارسال‌شده به سرویس‌های زیرینه شما که ازطریق ارائه‌دهنده گواهی انتخابی شما (در این مورد reCAPTCHA Enterprise) درستی‌سنجی نشده‌اند مسدود خواهند شد. به برنامه وب درحال اجرای خود که باید در http://localhost:5000 اجرا شود برگردید. وقتی صفحه را بازآوری می‌کنید و سعی می‌کنید داده‌ها را از پایگاه داده دریافت کنید، هیچ اتفاقی نمی‌افتد. اگر کنسول Chrome را برای خواندن خطاها باز کنید، باید چیزی شبیه به موارد زیر را ببینید:

Uncaught Error in snapshot listener: FirebaseError: [code=permission-denied]: Missing or insufficient permissions.

این «بررسی برنامه» است که درخواست‌هایی را که در درخواست‌هایشان به منابع Firebase شما یک کد گواهی معتبر ارسال نکرده‌اند مسدود می‌کند. درحال‌حاضر، می‌توانید اجرای «بررسی برنامه» را خاموش کنید و در بخش بعدی، نحوه افزودن «بررسی برنامه» reCAPTCHA Enterprise به نمونه Friendly Chat را بررسی کنید.

‫۷. افزودن کلید reCAPTCHA Enterprise به سایت

کلید سازمانی را به برنامه‌تان اضافه خواهیم کرد. ابتدا hosting/src/firebase-config.js را باز کنید و «کلید سازمانی reCAPTCHA» را به تکه‌کد زیر اضافه کنید:

const reCAPTCHAEnterpriseKey = {
  // Replace with your recaptcha enterprise site key
  key: "Replace with your recaptcha enterprise site key"
};

پس‌از تکمیل این مرحله، hosting/src/index.js را باز کنید و در خط ۵۱، یک واردات از firebase-config.js اضافه کنید تا کلید reCAPTCHA خود را واکشی کنید و همچنین کتابخانه «بررسی برنامه» را وارد کنید تا بتوانید با ارائه‌دهنده reCAPTCHA Enterprise کار کنید.

// add from here
 import {
   initializeAppCheck,
   ReCaptchaEnterpriseProvider,
 } from 'firebase/app-check';
// to here

// replace this line
import { getFirebaseConfig } from './firebase-config.js';
// with this line
import { getFirebaseConfig, getReCaptchaKey } from './firebase-config.js';

سپس، در خط بعدی، تابعی برای راه‌اندازی «بررسی برنامه» ایجاد خواهید کرد. این تابع ابتدا بررسی می‌کند که آیا در محیط توسعه هستید یا نه و اگر هستید، یک کد تصدیق اشکال‌زدایی چاپ می‌کند که می‌توانید از آن برای توسعه محلی استفاده کنید.

import { getFirebaseConfig, getReCaptchaKey } from './firebase-config.js';
// add from here
 function setupAppCheck(app) {
   if(import.meta.env.MODE === 'development') {
     self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
   }
 }
// to here

اکنون زمان آن است که «بررسی برنامه» را برای کار با ارائه‌دهنده انتخابی‌تان (در این مورد، reCAPTCHA Enterprise) مقداردهی اولیه کنید. سپس می‌خواهید که توکن App Check شما به‌طور خودکار در پس‌زمینه بازآوری شود، که از هرگونه تأخیر در تعامل کاربر با سرویس شما درصورتی‌که توکن App Check آن‌ها منقضی شده باشد جلوگیری می‌کند.

function setupAppCheck(app) {
   if(import.meta.env.MODE === 'development') {
     self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
   }
// add from here
   // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise
   // site key and pass it to initializeAppCheck().
   initializeAppCheck(app, {
     provider: new ReCaptchaEnterpriseProvider(getReCaptchaKey()),
     isTokenAutoRefreshEnabled: true // Set to true to allow auto-refresh.
   });
// to here
 }

درنهایت، وقتی مطمئن شدید که برنامه مقداردهی اولیه شده است، باید تابع setupAppCheck را که به‌تازگی ایجاد کرده‌اید فراخوانی کنید. در پایین فایل hosting/src/index.js، فراخوانی را به روشی که اخیراً اضافه کرده‌اید اضافه کنید.

const firebaseApp = initializeApp(getFirebaseConfig());
// add from here
setupAppCheck(firebaseApp);
// to here
getPerformance();
initFirebaseAuth();
loadMessages();

ابتدا به‌صورت محلی آزمایش کنید

ابتدا برنامه‌تان را به‌صورت محلی آزمایش کنید. اگر ازقبل برنامه را به‌صورت محلی ارائه نمی‌دهید، firebase serve را اجرا کنید. باید متوجه شوید که برنامه هنوز به‌صورت محلی بار نمی‌شود. دلیلش این است که شما فقط دامنه Firebase خود را در ارائه‌دهنده گواهی reCAPTCHA ثبت کرده‌اید و دامنه localhost را ثبت نکرده‌اید. هرگز نباید localhost را به‌عنوان دامنه تأییدشده ثبت کنید زیرا این کار به کاربران اجازه می‌دهد از برنامه‌ای که به‌صورت محلی در دستگاهشان اجرا می‌شود به پس‌اندهای محدودشده شما دسترسی پیدا کنند. درعوض، چون self.FIREBASE_APPCHECK_DEBUG_TOKEN = true را تنظیم کرده‌اید، باید کنسول جاوا اسکریپت را برای خطی شبیه به این بررسی کنید:

App Check debug token: 55183c20-de61-4438-85e6-8065789265be. You will need to add it to your app's App Check settings in the Firebase console for it to work.

باید کد تصدیق اشکال‌زدایی ارائه‌شده را (در این مثال : 55183c20-de61-4438-85e6-8065789265be) بردارید و آن را در پیکربندی App Check در منوِ سرریز برنامه‌تان وارد کنید.

داشبورد «بررسی برنامه» که مکان «مدیریت نشانه‌های اشکال‌زدایی» را نشان می‌دهد

نامی یکتا برای این کد امنیتی انتخاب کنید که بتوانید آن را به‌خاطر بسپارید و روی ذخیره کلیک کنید. این گزینه به شما امکان می‌دهد از یک کد تولیدشده توسط کارخواه با برنامه‌تان استفاده کنید که جایگزین ایمن‌تری نسبت به تولید کد اشکال‌زدایی و جاسازی آن در برنامه‌تان است. جاسازی کردن یک کد در برنامه می‌تواند باعث شود که به‌طور تصادفی بین کاربران نهایی توزیع شود و آن کاربران نهایی می‌توانند با دور زدن بررسی‌های شما از آن سوءاستفاده کنند. اگر می‌خواهید یک کد تصحیح اشکال را توزیع کنید، برای مثال در یک محیط CI، این سند را بخوانید تا درباره نحوه توزیع آن بیشتر بدانید.

نمونه‌ای از پر کردن کد اشکال‌زدایی با نام مستعار

پس‌از ثبت کردن کد تصدیق اشکال‌زدایی در کنسول Firebase، می‌توانید اجرای «بررسی برنامه» را دوباره فعال کنید و با فراخوانی firebase serve از پایانه، آزمایش کنید که محتوای برنامه به‌صورت محلی بار می‌شود. باید ببینید داده‌هایی که قبلاً وارد شده‌اند به نسخه محلی برنامه وب ارائه می‌شوند. همچنان باید پیام را با کد اشکال‌زدایی چاپ‌شده در کنسول ببینید.

امتحان کردن در تولید

وقتی مطمئن شدید که «بررسی برنامه» به‌صورت محلی کار می‌کند، برنامه وب را در محیط تولید مستقر کنید. از پایانه خود دوباره با firebase deploy تماس بگیرید و صفحه را مجدداً بار کنید. این کار برنامه وب شما را برای اجرا در «میزبانی Firebase» بسته‌بندی می‌کند. وقتی برنامه‌تان در «میزبانی Firebase» میزبانی شد، سعی کنید از برنامه‌تان در ${YOUR_PROJECT_ID}.web.app بازدید کنید. می‌توانید کنسول جاوا اسکریپت را باز کنید و دیگر نباید کد اشکال‌زدایی را در آنجا ببینید و باید گپ‌ها را درحال بار شدن در پروژه‌تان ببینید. علاوه‌براین، پس‌از چند لحظه تعامل با برنامه، می‌توانید به بخش «بررسی برنامه» در کنسول Firebase بروید و تأیید کنید که درخواست‌های ارسال‌شده به برنامه‌تان به حالت «همه درستی‌سنجی‌شده» تغییر کرده است.

‫۸. تبریک!

تبریک می‌گوییم، «بررسی برنامه Firebase» را باموفقیت به «برنامه وب» اضافه کردید!

کنسول Firebase را برای مدیریت کردن کد reCAPTCHA Enterprise برای محیط‌های تولید راه‌اندازی کردید و حتی کدهای اشکال‌زدایی را برای توسعه محلی تنظیم کردید. این کار تضمین می‌کند که برنامه‌هایتان همچنان بتوانند ازطریق کارخواه‌های تأییدشده به منابع Firebase دسترسی داشته باشند و از وقوع فعالیت‌های کلاهبردارانه در برنامه‌تان جلوگیری می‌کند.

حالا چه می‌شود؟

برای افزودن «بررسی برنامه Firebase» به موارد زیر، اسناد زیر را بررسی کنید:

اسناد مرجع