App Check में कई सेवा देने वाली कंपनियों के लिए, पहले से सहायता उपलब्ध है: Apple प्लैटफ़ॉर्म पर DeviceCheck और AppAttest, Android पर Play Integrity, और वेब ऐप्लिकेशन में reCAPTCHA Enterprise (खास जानकारी). ये ऐसे सप्लायर हैं जिनके बारे में ज़्यादातर डेवलपर को पता होता है. इनसे ज़्यादातर डेवलपर की ज़रूरतें पूरी हो सकती हैं. हालांकि, आपके पास अपनी पसंद के मुताबिक, App Check प्रोवाइडर लागू करने का भी विकल्प है. कस्टम प्रोवाइडर का इस्तेमाल तब ज़रूरी होता है, जब:
आपको डिवाइस में पहले से मौजूद ईमेल सेवा देने वाली कंपनी के बजाय, किसी दूसरी कंपनी की सेवा का इस्तेमाल करना है.
आप पहले से मौजूद सेवा देने वाली कंपनियों का इस्तेमाल ऐसे तरीकों से करना चाहते हैं जो काम नहीं करते.
आपको Apple, Android, और वेब के अलावा, दूसरे प्लैटफ़ॉर्म का इस्तेमाल करके डिवाइस की पुष्टि करनी हो. उदाहरण के लिए, डेस्कटॉप ओएस या इंटरनेट-ऑफ़-थिंग्स डिवाइसों के लिए App Check प्रोवाइडर बनाए जा सकते हैं.
आपको किसी भी प्लैटफ़ॉर्म पर, पुष्टि करने की अपनी तकनीकें लागू करनी हैं.
खास जानकारी
कस्टम App Check प्रोवाइडर लागू करने के लिए, आपको एक सुरक्षित बैकएंड एनवायरमेंट की ज़रूरत होगी, जो Node.js Firebase Admin SDK को चला सके. यह Cloud Functions, कंटेनर प्लैटफ़ॉर्म हो सकता है, जैसे कि Cloud Run या आपका अपना सर्वर.
इस एनवायरमेंट में, आपको अपने ऐप्लिकेशन को नेटवर्क से ऐक्सेस करने वाली सेवा देनी होगी. इस सेवा को आपके ऐप्लिकेशन क्लाइंट से प्रामाणिकता का सबूत मिलता है. साथ ही, अगर भरोसेमंद होने का सबूत आपके प्रामाणिकता के आकलन में पास हो जाता है, तो आपको एक App Check टोकन मिलता है. प्रामाणिकता के सबूत के तौर पर इस्तेमाल किए जाने वाले खास इंडिकेटर, आपके इस्तेमाल किए जा रहे तीसरे पक्ष की कंपनी या आपके अपने आविष्कार के इंडिकेटर पर निर्भर करेंगे. ऐसा तब होगा, जब आपने कस्टम लॉजिक लागू किया हो.
आम तौर पर, इस सेवा को REST या gRPC एंडपॉइंट के तौर पर एक्सपोज़ किया जाता है. हालांकि, यह जानकारी आपके ऊपर है.
टोकन हासिल करने वाला एंडपॉइंट बनाना
नेटवर्क से ऐक्सेस किया जा सकने वाला ऐसा एंडपॉइंट बनाएं जिसे आपके क्लाइंट से पुष्टि करने का डेटा मिल सके. उदाहरण के लिए, Cloud Functions का इस्तेमाल करके:
// Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken exports.fetchAppCheckToken = functions.https.onRequest((request, response) => { // ... });
पुष्टि करने के लिए डेटा का आकलन करने वाले एंडपॉइंट लॉजिक में जोड़ें. यह आपके कस्टम App Check प्रोवाइडर का मुख्य लॉजिक है. इसे आपको खुद लिखना होगा.
अगर आपको लगता है कि क्लाइंट भरोसेमंद है, तो App Check टोकन को मिंट करने के लिए Admin SDK का इस्तेमाल करें. साथ ही, उसे क्लाइंट को वापस करें और उसकी समयसीमा खत्म होने का समय बताएं:
const admin = require('firebase-admin'); admin.initializeApp(); // ... admin.appCheck().createToken(appId) .then(function (appCheckToken) { // Token expires in an hour. const expiresAt = Math.floor(Date.now() / 1000) + 60 * 60; // Return appCheckToken and expiresAt to the client. }) .catch(function (err) { console.error('Unable to create App Check token.'); console.error(err); });
अगर क्लाइंट की पुष्टि नहीं की जा सकती, तो गड़बड़ी का मैसेज दिखाएं. उदाहरण के लिए, एचटीटीपी 403 गड़बड़ी का मैसेज दिखाएं.
ज़रूरी नहीं: अपनी पसंद के मुताबिक सेवा देने वाली कंपनी के जारी किए गए App Check टोकन के लिए, टाइम-टू-लाइव (टीटीएल) सेट करें. इसके लिए,
createToken()
कोAppCheckTokenOptions
ऑब्जेक्ट दें. टीटीएल को 30 मिनट से लेकर 7 दिन के बीच की किसी भी वैल्यू पर सेट किया जा सकता है. इस वैल्यू को सेट करते समय, इन बातों का ध्यान रखें:- सुरक्षा: कम टीटीएल से ज़्यादा सुरक्षा मिलती है, क्योंकि इससे उस समयावधि में कमी आती है जिसमें हैकर, लीक या इंटरसेप्ट किए गए टोकन का गलत इस्तेमाल कर सकता है.
- परफ़ॉर्मेंस: टीटीएल कम होने का मतलब है कि आपका ऐप्लिकेशन ज़्यादा बार पुष्टि करेगा. ऐप्लिकेशन की पुष्टि करने की प्रोसेस हर बार नेटवर्क अनुरोधों में इंतज़ार का समय जोड़ती है. इसलिए, कम टीटीएल से आपके ऐप्लिकेशन की परफ़ॉर्मेंस पर असर पड़ सकता है.
ज़्यादातर ऐप्लिकेशन के लिए 1 घंटे का डिफ़ॉल्ट TTL सही है.
अगले चरण
अब आपने अपनी पसंद के मुताबिक सर्वर देने वाला सर्वर साइड लॉजिक लागू कर लिया है, तो अपने Apple, Android, और वेब क्लाइंट की मदद से इसे इस्तेमाल करने का तरीका जानें.