ऐप्पल प्लेटफॉर्म के लिए फायरबेस ऐप चेक

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

1 परिचय

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

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

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

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

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

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

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

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

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

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

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

कमांड लाइन से iOS रिपॉजिटरी के लिए Firebase Quickstarts को क्लोन करें:

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

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

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 प्रोजेक्ट में ऐप चेक का उपयोग करने के लिए, आपको फायरबेस कंसोल में इन चरणों का पालन करना होगा:

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

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

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

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

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

अब, फायरबेस कंसोल के रीयलटाइम डेटाबेस अनुभाग में नेविगेट करें।

  1. डेटाबेस निर्माण कार्यप्रवाह प्रारंभ करने के लिए डेटाबेस बनाएँ बटन पर क्लिक करें।
  2. डेटाबेस के लिए डिफ़ॉल्ट स्थान ( us-central1 ) को अपरिवर्तित छोड़ दें, और अगला पर क्लिक करें।
  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. अद्यतन सुरक्षा नियमों को सक्रिय करने के लिए प्रकाशित करें बटन पर क्लिक करें।

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

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

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

अपना आईओएस ऐप कनेक्ट करें

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

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

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

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

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

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

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

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

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

स्पिन के लिए ऐप लें

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

6. एक ऐप प्रमाणन प्रदाता कॉन्फ़िगर करें

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

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

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

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

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

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

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

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

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

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

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

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

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

विकल्प 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 स्थापित करें

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

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

  AppCheck.setAppCheckProviderFactory(providerFactory)

  FirebaseApp.configure()
}

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

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

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

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

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

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

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

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

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

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

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

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

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

  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. Firebase कंसोल में अपने ऐप की ऐप चेक सेटिंग में डिबग टोकन रजिस्टर करें।
  5. ऐप को फिर से चलाएं।
  6. अब आपको कोई त्रुटि संदेश नहीं देखना चाहिए, और ऐप में नई पोस्ट और टिप्पणियां जोड़ने में सक्षम होना चाहिए।

10. बधाई!

9785d32f18b995d2.gif

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

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

अगले कदम

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

ये अन्य संसाधन हैं जो आपको मददगार लग सकते हैं

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