ऐप्पल प्लेटफ़ॉर्म के लिए फायरबेस ऐप की जाँच करें

1 परिचय

फायरबेस ऐप चेक आपके बैकएंड संसाधनों को बिलिंग धोखाधड़ी और फ़िशिंग जैसे दुरुपयोग से बचाने में मदद करता है, यह सुनिश्चित करके कि अनुरोध वैध ऐप्स और डिवाइस से आते हैं। यह आपके संसाधनों को सुरक्षित रखने के लिए फायरबेस सेवाओं और आपकी अपनी बैकएंड सेवाओं दोनों के साथ काम करता है।

आप फ़ायरबेस दस्तावेज़ में फ़ायरबेस ऐप चेक के बारे में अधिक जान सकते हैं।

ऐप चेक किसी ऐप और/या डिवाइस की अखंडता को सत्यापित करने के लिए प्लेटफ़ॉर्म-विशिष्ट सेवाओं का उपयोग करता है। इन सेवाओं को सत्यापन प्रदाता कहा जाता है। ऐसा ही एक प्रदाता ऐप्पल की ऐप अटेस्ट सेवा है, जिसका उपयोग ऐप चेक ऐप्पल ऐप और डिवाइस की प्रामाणिकता को सत्यापित करने के लिए कर सकता है।

आप क्या बनाएंगे

इस कोडलैब में, आप मौजूदा नमूना एप्लिकेशन में ऐप चेक जोड़ेंगे और लागू करेंगे ताकि प्रोजेक्ट का रीयलटाइम डेटाबेस अवैध ऐप्स और डिवाइसों द्वारा एक्सेस होने से सुरक्षित रहे।

आप क्या सीखेंगे

  • मौजूदा ऐप में फायरबेस ऐप चेक कैसे जोड़ें।
  • विभिन्न फायरबेस ऐप कैसे स्थापित करें सत्यापन प्रदाताओं की जांच करें।
  • अपने ऐप के लिए ऐप अटेस्ट कैसे कॉन्फ़िगर करें।
  • ऐप विकास के दौरान सिम्युलेटर पर अपने ऐप का परीक्षण करने के लिए डिबग सत्यापन प्रदाता को कैसे कॉन्फ़िगर करें।

आपको किस चीज़ की ज़रूरत पड़ेगी

  • Xcode 13.3.1 या बाद का संस्करण
  • एक Apple डेवलपर खाता जो आपको नए ऐप पहचानकर्ता बनाने की अनुमति देता है
  • एक iOS/iPadOS डिवाइस जो ऐप अटेस्ट को सपोर्ट करता है ( ऐप अटेस्ट एपीआई उपलब्धता के बारे में जानें)

2. स्टार्टर प्रोजेक्ट प्राप्त करें

आईओएस रिपॉजिटरी के लिए फायरबेस क्विकस्टार्ट में विभिन्न फायरबेस उत्पादों को प्रदर्शित करने के लिए नमूना ऐप्स शामिल हैं। आप इस कोडलैब के आधार के रूप में स्विफ्टयूआई के लिए फायरबेस डेटाबेस क्विकस्टार्ट ऐप का उपयोग करेंगे।

कमांड लाइन से iOS रिपॉजिटरी के लिए फायरबेस क्विकस्टार्ट को क्लोन करें:

git clone https://github.com/firebase/quickstart-ios.git
cd quickstart-ios

Xcode में रीयलटाइम डेटाबेस स्विफ्टयूआई क्विकस्टार्ट ऐप प्रोजेक्ट खोलें:

cd database/DatabaseExampleSwiftUI/DatabaseExample
xed .

3. अपने ऐप में ऐप चेक जोड़ें

  1. प्रोजेक्ट की निर्भरताओं को हल करने के लिए स्विफ्ट पैकेज मैनेजर की प्रतीक्षा करें।
  2. DatabaseExample (iOS) ऐप लक्ष्य का सामान्य टैब खोलें। फिर, फ्रेमवर्क, लाइब्रेरीज़ और एंबेडेड कंटेंट अनुभाग में, + बटन पर क्लिक करें।
  3. FirebaseAppCheck जोड़ने के लिए चयन करें।

4. ऐप चेक प्रदाता फ़ैक्टरी बनाएं और इंस्टॉल करें

  1. Shared फ़ाइल समूह में, AppCheck नामक एक नया समूह जोड़ें।
  2. इस समूह के अंदर, एक अलग फ़ाइल में फ़ैक्टरी क्लास बनाएं, उदाहरण के MyAppCheckProviderFactory.swift , इसे DatabaseExample (iOS) लक्ष्य में जोड़ना सुनिश्चित करें:
    import Firebase
    
    class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
      func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
        #if targetEnvironment(simulator)
          // App Attest is not available on simulators.
          // Use a debug provider.
          return AppCheckDebugProvider(app: app)
        #else
          // Use App Attest provider on real devices.
          return AppAttestProvider(app: app)
        #endif
      }
    }
    
  3. इसके बाद, DatabaseExampleApp.swift में, FirebaseAppCheck आयात करना सुनिश्चित करें, और MyAppCheckProviderFactory क्लास का एक उदाहरण ऐप चेक प्रदाता फैक्ट्री के रूप में सेट करें।
    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct DatabaseExampleApp: App {
      init() {
        // Set an instance of MyAppCheckProviderFactory as an App Check
        // provider factory before configuring Firebase.
        AppCheck.setAppCheckProviderFactory(MyAppCheckProviderFactory())
        FirebaseApp.configure()
      }
      ...
    }
    

5. फायरबेस प्रोजेक्ट बनाएं और कॉन्फ़िगर करें

अपने iOS प्रोजेक्ट में ऐप चेक का उपयोग करने के लिए, आपको फायरबेस कंसोल में इन चरणों का पालन करना होगा:

  • एक फायरबेस प्रोजेक्ट सेट करें।
  • अपने iOS ऐप को फायरबेस प्रोजेक्ट में जोड़ें।
  • फायरबेस प्रमाणीकरण कॉन्फ़िगर करें।
  • आप जिस रीयलटाइम डेटाबेस इंस्टेंस की सुरक्षा करने जा रहे हैं, उसे प्रारंभ करें।
  • ऐप चेक कॉन्फ़िगर करें.

एक प्रोजेक्ट बनाएं

सबसे पहले, आपको एक फायरबेस प्रोजेक्ट बनाना होगा।

  1. फायरबेस कंसोल में, प्रोजेक्ट जोड़ें चुनें।
  2. अपने प्रोजेक्ट को App Check Codelab नाम दें
  3. जारी रखें पर क्लिक करें.
  4. इस प्रोजेक्ट के लिए Google Analytics अक्षम करें और फिर प्रोजेक्ट बनाएं पर क्लिक करें।

एक रीयलटाइम डेटाबेस इंस्टेंस बनाएं

अब, फायरबेस कंसोल के रीयलटाइम डेटाबेस अनुभाग पर जाएँ।

  1. डेटाबेस निर्माण वर्कफ़्लो शुरू करने के लिए डेटाबेस बनाएँ बटन पर क्लिक करें।
  2. डेटाबेस के लिए डिफ़ॉल्ट स्थान ( us-central1 ) को अपरिवर्तित छोड़ें, और Next पर क्लिक करें।
  3. सुनिश्चित करें कि लॉक्ड मोड चयनित है और अपने डेटाबेस के लिए सुरक्षा नियमों को सक्षम करने के लिए सक्षम करें बटन पर क्लिक करें।
  4. रीयलटाइम डेटाबेस ब्राउज़र के नियम टैब पर जाएँ, और डिफ़ॉल्ट नियमों को निम्नलिखित से बदलें:
    {
        "rules": {
            // User profiles are only readable/writable by the user who owns it
            "users": {
                "$UID": {
                    ".read": "auth.uid == $UID",
                    ".write": "auth.uid == $UID"
                }
            },
            // Posts can be read by anyone but only written by logged-in users.
            "posts": {
                ".read": true,
                ".write": "auth.uid != null",
                "$POSTID": {
                    // UID must match logged in user and is fixed once set
                    "uid": {
                        ".validate": "(data.exists() && data.val() == newData.val()) || newData.val() == auth.uid"
                    },
                    // User can only update own stars
                    "stars": {
                        "$UID": {
                            ".validate": "auth.uid == $UID"
                        }
                    }
                }
            },
            // User posts can be read by anyone but only written by the user that owns it,
            // and with a matching UID
            "user-posts": {
                ".read": true,
                "$UID": {
                    "$POSTID": {
                        ".write": "auth.uid == $UID",
                        ".validate": "data.exists() || newData.child('uid').val() == auth.uid"
                    }
                }
            },
            // Comments can be read by anyone but only written by a logged in user
            "post-comments": {
                ".read": true,
                ".write": "auth.uid != null",
                "$POSTID": {
                    "$COMMENTID": {
                        // UID must match logged in user and is fixed once set
                        "uid": {
                            ".validate": "(data.exists() && data.val() == newData.val()) || newData.val() == auth.uid"
                        }
                    }
                }
            }
        }
    }
    
  5. अद्यतन सुरक्षा नियमों को सक्रिय करने के लिए प्रकाशित करें बटन पर क्लिक करें।

फ़ायरबेस से कनेक्ट होने के लिए अपना iOS ऐप तैयार करें

किसी भौतिक डिवाइस पर नमूना ऐप चलाने में सक्षम होने के लिए, आपको प्रोजेक्ट को अपनी विकास टीम में जोड़ना होगा ताकि Xcode आपके लिए आवश्यक प्रावधान प्रोफ़ाइल प्रबंधित कर सके। अपने डेवलपर खाते में नमूना ऐप जोड़ने के लिए इन चरणों का पालन करें:

  1. Xcode में, प्रोजेक्ट नेविगेटर में DatabaseExample प्रोजेक्ट का चयन करें।
  2. DatabaseExample (iOS) लक्ष्य का चयन करें और हस्ताक्षर और क्षमताएं टैब खोलें।
  3. आपको एक त्रुटि संदेश देखना चाहिए जिसमें लिखा हो कि "DatabaseExample (iOS) के लिए हस्ताक्षर करने के लिए एक विकास टीम की आवश्यकता है"।
  4. बंडल पहचानकर्ता को एक अद्वितीय पहचानकर्ता में अपडेट करें। इसे प्राप्त करने का सबसे आसान तरीका अपनी वेबसाइट के रिवर्स डोमेन नाम का उपयोग करना है, उदाहरण के लिए com.acme.samples.firebase.quickstart.DatabaseExample (कृपया इस आईडी का उपयोग न करें; इसके बजाय अपनी खुद की, अद्वितीय आईडी चुनें)।
  5. अपनी विकास टीम चुनें.
  6. जब Xcode "प्रावधान प्रोफ़ाइल: Xcode प्रबंधित प्रोफ़ाइल" और इस लेबल के बगल में एक छोटा सा जानकारी आइकन प्रदर्शित करेगा, तो आपको पता चल जाएगा कि सब कुछ ठीक हो गया है। इस आइकन पर क्लिक करने से प्रोविज़निंग प्रोफ़ाइल के बारे में अधिक विवरण प्रदर्शित होंगे।

अपना iOS ऐप कनेक्ट करें

अपने ऐप को कनेक्ट करने की गहन व्याख्या के लिए, अपने iOS प्रोजेक्ट में फ़ायरबेस जोड़ने के बारे में दस्तावेज़ देखें। आरंभ करने के लिए, फायरबेस कंसोल में इन मुख्य चरणों का पालन करें:

  1. अपने नए प्रोजेक्ट की प्रोजेक्ट अवलोकन स्क्रीन से, + ऐप जोड़ें बटन पर क्लिक करें और फिर अपने फायरबेस प्रोजेक्ट में एक नया आईओएस ऐप जोड़ने के लिए आईओएस + आइकन पर क्लिक करें।
  2. अपने ऐप की बंडल आईडी दर्ज करें (उसका उपयोग करें जिसे आपने पिछले अनुभाग में परिभाषित किया था, जैसे कि com.acme.samples.firebase.quickstart.DatabaseExample - ध्यान रखें कि यह एक विशिष्ट पहचानकर्ता होना चाहिए )
  3. रजिस्टर ऐप पर क्लिक करें।
  4. फ़ायरबेस एक GoogleService-Info.plist फ़ाइल बनाता है जिसमें आपके ऐप के लिए सभी आवश्यक फ़ायरबेस मेटाडेटा होता है।
  5. फ़ाइल डाउनलोड करने के लिए GoogleService-Info.plist डाउनलोड करें पर क्लिक करें।
  6. Xcode में, आप देखेंगे कि प्रोजेक्ट में पहले से ही GoogleService-Info.plist नाम की एक फ़ाइल मौजूद है। पहले इस फ़ाइल को हटाएं - आप इसे अगले चरण में अपने स्वयं के फायरबेस प्रोजेक्ट के लिए बदल देंगे।
  7. पिछले चरण में डाउनलोड की गई GoogleService-Info.plist फ़ाइल को अपने Xcode प्रोजेक्ट के रूट फ़ोल्डर में कॉपी करें और इसे DatabaseExample (iOS) लक्ष्य में जोड़ें, सुनिश्चित करें कि इसका नाम GoogleService-Info.plist है।
  8. पंजीकरण प्रवाह के शेष चरणों पर क्लिक करें। चूँकि नमूना प्रोजेक्ट पहले से ही सही ढंग से सेट किया गया है, इसलिए आपको कोड में कोई बदलाव करने की आवश्यकता नहीं है।

फायरबेस प्रमाणीकरण कॉन्फ़िगर करें

ओह! अब तक यह काफी सेटअप है, लेकिन धैर्य बनाए रखें! यदि आप फायरबेस में नए हैं, तो आपने वर्कफ़्लो के आवश्यक भाग देखे हैं जिनसे आप जल्द ही परिचित होंगे।

अब, आप इस ऐप के लिए फायरबेस प्रमाणीकरण कॉन्फ़िगर करेंगे।

प्रमाणीकरण ईमेल/पासवर्ड साइन-इन प्रदाता सक्षम करें

  1. अभी भी फायरबेस कंसोल में, कंसोल का प्रमाणीकरण अनुभाग खोलें।
  2. अपने प्रोजेक्ट के लिए फायरबेस प्रमाणीकरण सेट करने के लिए आरंभ करें पर क्लिक करें।
  3. साइन-इन विधि टैब चुनें.
  4. मूल प्रदाता अनुभाग में ईमेल/पासवर्ड चुनें।
  5. ईमेल/पासवर्ड सक्षम करें और सहेजें पर क्लिक करें।

एक परीक्षण उपयोगकर्ता जोड़ें

  1. प्रमाणीकरण अनुभाग का उपयोगकर्ता टैब खोलें।
  2. उपयोगकर्ता जोड़ें पर क्लिक करें.
  3. अपने परीक्षण उपयोगकर्ता के लिए एक ईमेल और पासवर्ड निर्दिष्ट करें, फिर उपयोगकर्ता जोड़ें पर क्लिक करें।

एक चक्कर के लिए ऐप लें

Xcode पर वापस जाएँ, और iOS सिम्युलेटर पर एप्लिकेशन चलाएँ। आपके द्वारा अभी बनाए गए परीक्षण उपयोगकर्ता के ईमेल और पासवर्ड से साइन इन करें। एक बार साइन इन करने के बाद, एक पोस्ट बनाएं, मौजूदा पोस्ट पर एक टिप्पणी पोस्ट करें और पोस्ट को स्टार/अनस्टार करें।

6. एक ऐप अटेस्ट सत्यापन प्रदाता कॉन्फ़िगर करें

इस चरण में, आप फायरबेस कंसोल में ऐप अटेस्ट प्रदाता का उपयोग करने के लिए ऐप चेक को कॉन्फ़िगर करेंगे।

  1. फायरबेस कंसोल में, कंसोल के ऐप चेक अनुभाग पर जाएँ।
  2. आरंभ करें पर क्लिक करें.
  3. ऐप्स टैब में, अपने ऐप का विवरण विस्तृत करने के लिए उस पर क्लिक करें।
  4. ऐप अटेस्ट को कॉन्फ़िगर करने के लिए ऐप अटेस्ट पर क्लिक करें, फिर अपने ऐप्पल डेवलपर खाते की टीम आईडी दर्ज करें (आप इसे ऐप्पल डेवलपर पोर्टल पर सदस्यता अनुभाग में पा सकते हैं): 1645f7a369b678c2.png
  5. सहेजें पर क्लिक करें.

इसके साथ, आपके पास एक कार्यशील फायरबेस प्रोजेक्ट है जो हमारे नए ऐप से जुड़ा है, और ऐप चेक सक्षम है।

अब आप हमारी विशिष्ट सत्यापन सेवा को कॉन्फ़िगर करने के लिए तैयार हैं! इस वर्कफ़्लो के बारे में अधिक जानकारी के लिए, iOS पर ऐप अटेस्ट के साथ ऐप चेक सक्षम करें देखें।

7. अपने आवेदन के लिए ऐप अटेस्ट कॉन्फ़िगर करें

अब फायरबेस ऐप चेक एसडीके पर हाथ आजमाने और कुछ क्लाइंट कोड लागू करने का समय आ गया है।

सबसे पहले, आपको Xcode प्रोजेक्ट को कॉन्फ़िगर करने की आवश्यकता है ताकि SDK Apple के ऐप अटेस्ट API का उपयोग करके यह सुनिश्चित कर सके कि आपके ऐप से भेजे गए अनुरोध आपके ऐप के वैध उदाहरणों से आए हैं।

  1. Xcode प्रोजेक्ट में अपने ऐप लक्ष्य के लिए ऐप अटेस्ट क्षमता जोड़ें:
  2. अपनी ऐप लक्ष्य सेटिंग में हस्ताक्षर और क्षमताएं टैब खोलें
  3. " + " बटन पर क्लिक करें
  4. संवाद में, ऐप अटेस्ट क्षमता ढूंढें और चुनें ae84cd988a5fab31.png
  5. पिछले चरण को निष्पादित करने के बाद आपके Xcode प्रोजेक्ट के रूट फ़ोल्डर में एक फ़ाइल DatabaseExample (iOS).entitlements दिखाई देगी।
  6. DatabaseExample (iOS).entitlements फ़ाइल में, App Attest Environment कुंजी के मान को production.

एक बार जब आप इन चरणों को पूरा कर लेते हैं और ऐप को भौतिक iOS डिवाइस (iPhone/iPad) पर लॉन्च करते हैं, तब भी ऐप रीयलटाइम डेटाबेस तक पहुंचने में सक्षम होगा। बाद के चरण में, आप ऐप चेक लागू करेंगे, जो अवैध ऐप्स और डिवाइस से भेजे जा रहे अनुरोधों को रोक देगा।

इस वर्कफ़्लो के बारे में अधिक जानने के लिए, iOS पर ऐप अटेस्ट के साथ ऐप चेक सक्षम करें देखें।

8. iOS सिम्युलेटर के लिए डिबग सत्यापन प्रदाता कॉन्फ़िगर करें

फायरबेस ऐप चेक डिबग प्रदाता विकास प्रक्रिया के दौरान आईओएस सिम्युलेटर सहित अविश्वसनीय वातावरण में फायरबेस ऐप चेक प्रवर्तन के साथ अनुप्रयोगों का परीक्षण करना संभव बनाता है। इसके बाद, आपको डिबग प्रदाता को एक साथ कॉन्फ़िगर करना होगा।

अपने ऐप में फायरबेस डिबग प्रदाता इंस्टॉल करें

विकल्प 1: सशर्त रूप से अपने कारखाने में डिबग प्रदाता का एक उदाहरण बनाएं

आपने इनमें से अधिकांश तब किया जब आपने ऐप चेक प्रदाता फ़ैक्टरी बनाई। इस चरण में, आप डिबग प्रदाता द्वारा उत्पन्न स्थानीय डिबग रहस्य की लॉगिंग जोड़ देंगे, ताकि आप डिबगिंग उद्देश्यों के लिए ऐप के इस उदाहरण को फायरबेस कंसोल में पंजीकृत कर सकें।

MyAppCheckProviderFactory.swift निम्नलिखित कोड से अपडेट करें:

import Firebase

class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
#if targetEnvironment(simulator)
    // App Attest is not available on simulators.
    // Use a debug provider.
    let provider = AppCheckDebugProvider(app: app)

    // Print only locally generated token to avoid a valid token leak on CI.
    print("Firebase App Check debug token: \(provider?.localDebugToken() ?? "" )")

    return provider
#else
    // Use App Attest provider on real devices.
    return AppAttestProvider(app: app)
#endif
  }
}

यह दृष्टिकोण हमें पर्यावरण के आधार पर ऐप चेक को कॉन्फ़िगर करने के लिए अधिक लचीलापन देता है। उदाहरण के लिए, आप अन्य सत्यापन प्रदाताओं जैसे डिवाइसचेक या ओएस संस्करणों पर एक कस्टम सत्यापन प्रदाता का उपयोग कर सकते हैं जहां ऐप अटेस्ट उपलब्ध नहीं है। नीचे एक उदाहरण देखें:

import Firebase

class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
      #if targetEnvironment(simulator)
      // App Attest is not available on simulators.
      // Use a debug provider.
      let provider = AppCheckDebugProvider(app: app)

      // Print only locally generated token to avoid a valid token leak on CI.
      print("Firebase App Check debug token: \(provider?.localDebugToken() ?? "" )")

      return provider
      #else
      if #available(iOS 14.0, *) {
        // Use App Attest provider on real devices.
        return AppAttestProvider(app: app)
      } else {
        return DeviceCheckProvider(app: app)
      }
      #endif
  }
}

विकल्प 2: AppCheckDebugProviderFactory इंस्टॉल करें

सरल मामलों के लिए आप फ़ायरबेस एप्लिकेशन इंस्टेंस को कॉन्फ़िगर करने से पहले अस्थायी या सशर्त रूप से AppCheckDebugProviderFactory इंस्टॉल कर सकते हैं:

init() {
#if targetEnvironment(simulator)
  let providerFactory = AppCheckDebugProviderFactory()
#else
  let providerFactory = MyAppCheckProviderFactory()
#endif

  AppCheck.setAppCheckProviderFactory(providerFactory)

  FirebaseApp.configure()
}

इससे आपको अपना स्वयं का ऐप चेक प्रदाता फ़ैक्टरी बनाने पर कोड की कुछ पंक्तियाँ बच जाएंगी।

अपना डिबग रहस्य फायरबेस कंसोल में पंजीकृत करें

अपने iOS सिम्युलेटर से डिबग रहस्य प्राप्त करें

  1. यदि आपने AppCheckDebugProviderFactory (ऊपर विकल्प 2) इंस्टॉल करना चुना है, तो आपको ऐप लॉन्च तर्कों में -FIRDebugEnabled जोड़कर अपने ऐप के लिए डिबग लॉगिंग सक्षम करने की आवश्यकता है: f1c6b477a373e144.png
  2. अपने ऐप को सिम्युलेटर पर चलाएं
  3. Xcode कंसोल में डिबग रहस्य ढूंढें। इसे तेज़ी से ढूंढने के लिए आप कंसोल फ़िल्टर का उपयोग कर सकते हैं: d4c65af93e369c55.png

नोट: डिबग रहस्य आपके सिम्युलेटर के लिए पहले ऐप लॉन्च पर उत्पन्न होता है और उपयोगकर्ता डिफ़ॉल्ट में संग्रहीत होता है। यदि आप ऐप हटाते हैं, सिम्युलेटर रीसेट करते हैं या किसी अन्य सिम्युलेटर का उपयोग करते हैं, तो एक नया डिबग रहस्य उत्पन्न होगा। नया डिबग रहस्य पंजीकृत करना सुनिश्चित करें।

डिबग रहस्य पंजीकृत करें

  1. फ़ायरवबेस कंसोल में वापस, ऐप चेक अनुभाग पर जाएँ।
  2. ऐप्स टैब में, अपने ऐप का विवरण विस्तृत करने के लिए उस पर क्लिक करें।
  3. ओवरफ़्लो मेनू में, डिबग टोकन प्रबंधित करें चुनें: d77c8ff768a00b4b.png
  4. वह रहस्य जोड़ें जिसे आपने Xcode कंसोल से कॉपी किया था, और फिर सहेजें पर क्लिक करें f845c97b86f694d0.png

इन चरणों के बाद, आप ऐप चेक लागू होने पर भी सिम्युलेटर पर ऐप का उपयोग कर सकते हैं।

नोट: डिबग प्रदाता को विशेष रूप से डिबग गुप्त लीक को रोकने में मदद करने के लिए डिज़ाइन किया गया था। वर्तमान दृष्टिकोण के साथ, आपको डिबग रहस्य को अपने स्रोत कोड में संग्रहीत करने की आवश्यकता नहीं है।

इस प्रवाह के बारे में अधिक विवरण दस्तावेज़ में पाया जा सकता है - iOS पर डिबग प्रदाता के साथ ऐप चेक का उपयोग करें देखें।

9. फायरबेस रीयलटाइम डेटाबेस के लिए ऐप चेक प्रवर्तन सक्षम करें

अभी के लिए, हमारा ऐप एक AppCheckProviderFactory घोषित करता है जो वास्तविक उपकरणों के लिए एक AppAttestProvider लौटाता है। भौतिक डिवाइस पर चलने पर, आपका ऐप सत्यापन करेगा और परिणाम फायरबेस बैकएंड पर भेजेगा। हालाँकि, फायरबेस बैकएंड अभी भी किसी भी डिवाइस, आईओएस सिम्युलेटर, एक स्क्रिप्ट आदि से अनुरोध स्वीकार करता है। यह मोड तब उपयोगी होता है जब आपके पास अभी भी ऐप चेक के बिना आपके ऐप के पुराने संस्करण वाले उपयोगकर्ता हैं, और आप एक्सेस को लागू नहीं करना चाहते हैं अभी भी जाँच करता है।

अब, आपको यह सुनिश्चित करने के लिए ऐप चेक प्रवर्तन को सक्षम करने की आवश्यकता है कि फायरबेस ऐप को केवल वैध उपकरणों से ही एक्सेस किया जा सके। एक बार जब आप फायरबेस प्रोजेक्ट के लिए प्रवर्तन सक्षम कर देंगे तो ऐप चेक एकीकरण के बिना पुराने ऐप संस्करण काम करना बंद कर देंगे।

  1. ऐप चेक अनुभाग में फायरबेस कंसोल में, इसके विवरण का विस्तार करने के लिए रीयलटाइम डेटाबेस पर क्लिक करें।
  2. लागू करें पर क्लिक करें.

64e6a81fa979b635.png

  1. पुष्टिकरण संवाद में जानकारी पढ़ें और फिर लागू करें पर क्लिक करें।

इन चरणों को पूरा करने के बाद, केवल वैध ऐप्स ही डेटाबेस तक पहुंच पाएंगे। अन्य सभी ऐप्स ब्लॉक कर दिए जाएंगे.

किसी अवैध ऐप से रीयलटाइम डेटाबेस तक पहुंचने का प्रयास करें

ऐप चेक प्रवर्तन को क्रियान्वित होते देखने के लिए, इन चरणों का पालन करें:

  1. DatabaseExampleApp में अपने ऐप प्रविष्टि बिंदु की init विधि में ऐप चेक पंजीकरण कोड पर टिप्पणी करके ऐप चेक पंजीकरण बंद करें।
  2. डिवाइस > सभी सामग्री और सेटिंग्स मिटाएँ का चयन करके सिम्युलेटर को रीसेट करें। यह सिम्युलेटर को मिटा देगा (और डिवाइस टोकन को अमान्य कर देगा)।
  3. सिम्युलेटर पर ऐप को फिर से चलाएँ।
  4. अब आपको निम्न त्रुटि संदेश देखना चाहिए:
    [FirebaseDatabase][I-RDB034005] Firebase Database connection was forcefully killed by the server.  Will not attempt reconnect. Reason: Invalid appcheck token.
    

ऐप चेक को पुनः सक्षम करने के लिए, निम्न कार्य करें:

  1. DatabaseExampleApp में ऐप चेक पंजीकरण कोड पर टिप्पणी हटाएं।
  2. ऐप पुनः प्रारंभ करें.
  3. Xcode के कंसोल में नए ऐप चेक टोकन पर ध्यान दें।
  4. फायरबेस कंसोल में अपने ऐप की ऐप चेक सेटिंग्स में डिबग टोकन पंजीकृत करें।
  5. ऐप को दोबारा चलाएं.
  6. आपको अब कोई त्रुटि संदेश नहीं देखना चाहिए, और ऐप में नए पोस्ट और टिप्पणियाँ जोड़ने में सक्षम होना चाहिए।

10. बधाई हो!

9785d32f18b995d2.gif

अब आप जानते हैं कि कैसे करें:

  • किसी मौजूदा प्रोजेक्ट में ऐप चेक जोड़ें
  • अपने ऐप के उत्पादन संस्करण के लिए एक ऐप अटेस्ट सत्यापन प्रदाता कॉन्फ़िगर करें
  • सिम्युलेटर पर अपने ऐप का परीक्षण करने के लिए डिबग सत्यापन प्रदाता को कॉन्फ़िगर करें
  • अपने फायरबेस प्रोजेक्ट के लिए ऐप चेक कब लागू करना है यह जानने के लिए ऐप संस्करण रोलआउट का निरीक्षण करें
  • ऐप जांच प्रवर्तन सक्षम करें

अगले कदम

जानें कि फायरबेस रिमोट कॉन्फिग कोडलैब का उपयोग करके धीरे-धीरे फायरबेस ऐप चेक को अपने उपयोगकर्ताओं के लिए रोलआउट करने के लिए रिमोट कॉन्फिग का उपयोग कैसे करें।

ये अन्य संसाधन हैं जो आपको उपयोगी लग सकते हैं

इस कोडलैब में वर्णित सेटअप अधिकांश मामलों में काम करेगा, लेकिन ऐप चेक आपको ज़रूरत पड़ने पर अधिक लचीलेपन की अनुमति देता है - अधिक विवरण के लिए निम्नलिखित लिंक देखें: