আপনি আপনার অ্যাপের জন্য গুগল-বহির্ভূত কাস্টম ব্যাকএন্ড রিসোর্স, যেমন আপনার নিজস্ব সেলফ-হোস্টেড ব্যাকএন্ড, সুরক্ষিত করতে App Check ব্যবহার করতে পারেন। এটি করার জন্য, আপনাকে নিম্নলিখিত দুটি কাজই করতে হবে:
- এই পৃষ্ঠায় বর্ণিত পদ্ধতি অনুযায়ী, আপনার অ্যাপ ক্লায়েন্টকে এমনভাবে পরিবর্তন করুন যাতে এটি আপনার ব্যাকএন্ডে পাঠানো প্রতিটি অনুরোধের সাথে একটি App Check টোকেন পাঠায়।
- কাস্টম ব্যাকএন্ড থেকে App Check টোকেন যাচাই করুন- এ বর্ণিত পদ্ধতি অনুযায়ী, প্রতিটি অনুরোধের সাথে একটি বৈধ App Check টোকেন আবশ্যক করতে আপনার ব্যাকএন্ডটি পরিবর্তন করুন।
শুরু করার আগে
reCAPTCHA এন্টারপ্রাইজ প্রোভাইডার অথবা একটি কাস্টম প্রোভাইডার ব্যবহার করে আপনার অ্যাপে App Check যোগ করুন।
ব্যাকএন্ড অনুরোধের সাথে App Check টোকেন পাঠান
আপনার অ্যাপ ক্লায়েন্টে, প্রতিটি অনুরোধের আগে, appCheck().getToken() ব্যবহার করে একটি বৈধ ও মেয়াদোত্তীর্ণ নয় এমন App Check টোকেন সংগ্রহ করুন। প্রয়োজনে App Check লাইব্রেরি টোকেনটি রিফ্রেশ করবে।
আপনার কাছে একটি বৈধ টোকেন থাকলে, অনুরোধের সাথে সেটি আপনার ব্যাকএন্ডে পাঠিয়ে দিন। আপনি কীভাবে এটি করবেন তার নির্দিষ্ট পদ্ধতি আপনার উপর নির্ভর করে, কিন্তু URL-এর অংশ হিসেবে, এমনকি কোয়েরি প্যারামিটারের মধ্যেও App Check টোকেন পাঠাবেন না , কারণ এতে সেগুলো দুর্ঘটনাবশত ফাঁস এবং হস্তগত হওয়ার ঝুঁকিতে থাকে। নিম্নলিখিত উদাহরণটিতে টোকেনটি একটি কাস্টম 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. };
রিপ্লে সুরক্ষা (বিটা)
যে এন্ডপয়েন্টের জন্য আপনি রিপ্লে প্রোটেকশন চালু করেছেন, সেখানে রিকোয়েস্ট করার সময় getToken getLimitedUseToken() getToken() ব্যবহার করে একটি টোকেন সংগ্রহ করুন:
import { getLimitedUseToken } from "firebase/app-check";
// ...
appCheckTokenResponse = await getLimitedUseToken(appCheck);