1. शुरुआती जानकारी
Firebase App Check, आपके बैकएंड संसाधनों को गलत इस्तेमाल से बचाने में मदद करता है. जैसे, बिलिंग में धोखाधड़ी और फ़िशिंग. यह पक्का करता है कि अनुरोध, भरोसेमंद ऐप्लिकेशन और डिवाइसों से किए गए हों. यह आपकी संसाधनों को सुरक्षित रखने के लिए, Firebase की सेवाओं और आपकी बैकएंड सेवाओं, दोनों के साथ काम करता है.
Firebase के दस्तावेज़ में, Firebase App Check के बारे में ज़्यादा जानें.
App Check, प्लैटफ़ॉर्म के हिसाब से उपलब्ध सेवाओं का इस्तेमाल करके, किसी ऐप्लिकेशन और/या डिवाइस की इंटिग्रिटी की पुष्टि करता है. इन सेवाओं को अटेस्टेशन देने वाली कंपनियां कहा जाता है. ऐसी ही एक सेवा, Apple की App Attest सेवा है. App Check, इसका इस्तेमाल Apple के ऐप्लिकेशन और डिवाइसों की पुष्टि करने के लिए कर सकता है.
आपको क्या बनाने को मिलेगा
इस कोडलैब में, आपको किसी मौजूदा सैंपल ऐप्लिकेशन में App Check को जोड़ने और लागू करने का तरीका बताया जाएगा. इससे प्रोजेक्ट के Realtime Database को ऐसे ऐप्लिकेशन और डिवाइसों से सुरक्षित रखा जा सकेगा जो नियमों का पालन नहीं करते.
आपको क्या सीखने को मिलेगा
- किसी मौजूदा ऐप्लिकेशन में Firebase App Check जोड़ने का तरीका.
- Firebase App Check के लिए, पुष्टि करने की सेवा देने वाली अलग-अलग कंपनियों के SDK इंस्टॉल करने का तरीका.
- अपने ऐप्लिकेशन के लिए App Attest को कॉन्फ़िगर करने का तरीका.
- ऐप्लिकेशन डेवलपमेंट के दौरान, सिम्युलेटर पर अपने ऐप्लिकेशन की जांच करने के लिए, डीबग अटेस्टेशन प्रोवाइडर को कॉन्फ़िगर करने का तरीका.
आपको इन चीज़ों की ज़रूरत होगी
- Xcode 13.3.1 या उसके बाद के वर्शन
- Apple Developer खाता, जिसकी मदद से नए ऐप्लिकेशन आइडेंटिफ़ायर बनाए जा सकते हैं
- ऐसा iOS/iPadOS डिवाइस जिस पर App Attest की सुविधा काम करती हो. App Attest API की उपलब्धता के बारे में जानें
2. स्टार्टर प्रोजेक्ट पाना
iOS के लिए Firebase Quickstarts रिपॉज़िटरी में, अलग-अलग Firebase प्रॉडक्ट दिखाने के लिए सैंपल ऐप्लिकेशन शामिल हैं. इस कोडलैब के लिए, Firebase Database Quickstart ऐप्लिकेशन का इस्तेमाल किया जाएगा. यह ऐप्लिकेशन SwiftUI के लिए बनाया गया है.
कमांड लाइन से, iOS के लिए Firebase Quickstarts रिपॉज़िटरी क्लोन करें:
git clone https://github.com/firebase/quickstart-ios.git cd quickstart-ios
Xcode में, Realtime Database SwiftUI Quickstart ऐप्लिकेशन प्रोजेक्ट खोलें:
cd database/DatabaseExampleSwiftUI/DatabaseExample xed .
3. अपने ऐप्लिकेशन में App Check को जोड़ना
- Swift Package Manager को प्रोजेक्ट की डिपेंडेंसी हल करने दें.
DatabaseExample (iOS)
ऐप्लिकेशन टारगेट के सामान्य टैब को खोलें. इसके बाद, फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किया गया कॉन्टेंट सेक्शन में जाकर, + बटन पर क्लिक करें.- जोड़ने के लिए
FirebaseAppCheck
को चुनें.
4. App Check provider factory बनाएं और उसे इंस्टॉल करें
Shared
फ़ाइल ग्रुप में,AppCheck
नाम का नया ग्रुप जोड़ें.- इस ग्रुप में, किसी अलग फ़ाइल में फ़ैक्ट्री क्लास बनाएं.उदाहरण के लिए,
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 } }
- इसके बाद,
DatabaseExampleApp.swift
मेंFirebaseAppCheck
को इंपोर्ट करना न भूलें. साथ ही,MyAppCheckProviderFactory
क्लास के इंस्टेंस को App Check provider factory के तौर पर सेट करें.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. Firebase प्रोजेक्ट बनाना और उसे कॉन्फ़िगर करना
अपने iOS प्रोजेक्ट में App Check का इस्तेमाल करने के लिए, आपको Firebase कंसोल में यह तरीका अपनाना होगा:
- Firebase प्रोजेक्ट सेट अप करें.
- अपने iOS ऐप्लिकेशन को Firebase प्रोजेक्ट में जोड़ें.
- Firebase Authentication को कॉन्फ़िगर करें.
- उस रीयलटाइम डेटाबेस इंस्टेंस को शुरू करें जिसे आपको सुरक्षित करना है.
- App Check को कॉन्फ़िगर करें.
प्रोजेक्ट बनाना
सबसे पहले, आपको एक Firebase प्रोजेक्ट बनाना होगा.
- अपने Google खाते का इस्तेमाल करके, Firebase कंसोल में साइन इन करें.
- नया प्रोजेक्ट बनाने के लिए बटन पर क्लिक करें. इसके बाद, प्रोजेक्ट का नाम डालें. उदाहरण के लिए,
App Check Codelab
. - जारी रखें पर क्लिक करें.
- अगर आपसे कहा जाए, तो Firebase की शर्तें पढ़ें और स्वीकार करें. इसके बाद, जारी रखें पर क्लिक करें.
- (ज़रूरी नहीं) Firebase कंसोल में एआई की मदद पाने की सुविधा चालू करें. इसे "Firebase में Gemini" कहा जाता है.
- इस कोडलैब के लिए, आपको Google Analytics की ज़रूरत नहीं है. इसलिए, Google Analytics के विकल्प को टॉगल करके बंद करें.
- प्रोजेक्ट बनाएं पर क्लिक करें. इसके बाद, प्रोजेक्ट के प्रोविज़न होने का इंतज़ार करें. इसके बाद, जारी रखें पर क्लिक करें.
Realtime Database इंस्टेंस बनाना
अब Firebase कंसोल के रीयलटाइम डेटाबेस सेक्शन पर जाएं.
- डेटाबेस बनाने का वर्कफ़्लो शुरू करने के लिए, डेटाबेस बनाएं बटन पर क्लिक करें.
- डेटाबेस के लिए डिफ़ॉल्ट लोकेशन (
us-central1
) को न बदलें. इसके बाद, आगे बढ़ें पर क्लिक करें. - पक्का करें कि लॉक किया गया मोड चुना गया हो. इसके बाद, अपने डेटाबेस के लिए सुरक्षा के नियम चालू करने के लिए, चालू करें बटन पर क्लिक करें.
- Realtime Database ब्राउज़र के नियम टैब पर जाएं और डिफ़ॉल्ट नियमों को यहां दिए गए नियमों से बदलें:
{ "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" } } } } } }
- अपडेट किए गए सुरक्षा नियमों को लागू करने के लिए, पब्लिश करें बटन पर क्लिक करें.
अपने iOS ऐप्लिकेशन को Firebase से कनेक्ट करने के लिए तैयार करना
किसी फ़िज़िकल डिवाइस पर सैंपल ऐप्लिकेशन चलाने के लिए, आपको प्रोजेक्ट को अपनी डेवलपमेंट टीम में जोड़ना होगा, ताकि Xcode आपके लिए ज़रूरी प्रोविज़निंग प्रोफ़ाइल को मैनेज कर सके. अपने डेवलपर खाते में सैंपल ऐप्लिकेशन जोड़ने के लिए, यह तरीका अपनाएं:
- Xcode में, प्रोजेक्ट नेविगेटर में जाकर
DatabaseExample
प्रोजेक्ट चुनें. DatabaseExample (iOS)
टारगेट चुनें और Signing & Capabilities टैब खोलें.- आपको गड़बड़ी का यह मैसेज दिखेगा: "DatabaseExample (iOS) के लिए साइन इन करने के लिए, डेवलपमेंट टीम की ज़रूरत होती है".
- बंडल आइडेंटिफ़ायर को यूनीक आइडेंटिफ़ायर में अपडेट करें. इसके लिए, अपनी वेबसाइट के रिवर्स डोमेन नेम का इस्तेमाल करना सबसे आसान तरीका है. उदाहरण के लिए,
com.acme.samples.firebase.quickstart.DatabaseExample
(कृपया इस आईडी का इस्तेमाल न करें; इसके बजाय, अपना यूनीक आईडी चुनें). - अपनी डेवलपमेंट टीम चुनें.
- जब Xcode, "Provisioning Profile: Xcode Managed Profile" और इस लेबल के बगल में एक छोटा सा जानकारी वाला आइकॉन दिखाता है, तो इसका मतलब है कि सब कुछ ठीक है. इस आइकॉन पर क्लिक करने से, प्रोविज़निंग प्रोफ़ाइल के बारे में ज़्यादा जानकारी दिखेगी.
अपने iOS ऐप्लिकेशन को कनेक्ट करना
अपने ऐप्लिकेशन को कनेक्ट करने के बारे में ज़्यादा जानकारी के लिए, अपने iOS प्रोजेक्ट में Firebase जोड़ने के बारे में दस्तावेज़ देखें. शुरू करने के लिए, Firebase कंसोल में यह तरीका अपनाएं:
- अपने नए प्रोजेक्ट की प्रोजेक्ट की खास जानकारी स्क्रीन पर, + ऐप्लिकेशन जोड़ें बटन पर क्लिक करें. इसके बाद, iOS+ आइकॉन पर क्लिक करके, अपने Firebase प्रोजेक्ट में नया iOS ऐप्लिकेशन जोड़ें.
- अपने ऐप्लिकेशन का बंडल आईडी डालें. वही आईडी इस्तेमाल करें जो आपने पिछले सेक्शन में तय किया था. जैसे,
com.acme.samples.firebase.quickstart.DatabaseExample
. ध्यान रखें कि यह ज़रूरी है कि यह एक यूनीक आइडेंटिफ़ायर हो - ऐप्लिकेशन रजिस्टर करें पर क्लिक करें.
- Firebase, आपके ऐप्लिकेशन के लिए ज़रूरी Firebase मेटाडेटा वाली
GoogleService-Info.plist
फ़ाइल जनरेट करता है. - फ़ाइल डाउनलोड करने के लिए, GoogleService-Info.plist डाउनलोड करें पर क्लिक करें.
- Xcode में, आपको दिखेगा कि प्रोजेक्ट में
GoogleService-Info.plist
नाम की फ़ाइल पहले से मौजूद है. पहले इस फ़ाइल को मिटाएं. अगले चरण में, इसे अपने Firebase प्रोजेक्ट की फ़ाइल से बदलें. - पिछले चरण में डाउनलोड की गई
GoogleService-Info.plist
फ़ाइल को अपने Xcode प्रोजेक्ट के रूट फ़ोल्डर में कॉपी करें. साथ ही, इसेDatabaseExample (iOS)
टारगेट में जोड़ें. यह पक्का करें कि इसका नामGoogleService-Info.plist
हो - रजिस्ट्रेशन फ़्लो के बाकी चरणों को पूरा करें. सैंपल प्रोजेक्ट पहले से ही सही तरीके से सेट अप है. इसलिए, आपको कोड में कोई बदलाव करने की ज़रूरत नहीं है.
Firebase Authentication को कॉन्फ़िगर करना
वाह! अब तक का सेटअप काफ़ी हद तक पूरा हो चुका है, लेकिन थोड़ा इंतज़ार करें! अगर आपने Firebase का इस्तेमाल पहले कभी नहीं किया है, तो आपको वर्कफ़्लो के ज़रूरी हिस्सों के बारे में पता चल गया होगा. जल्द ही, आपको इनके बारे में पूरी जानकारी मिल जाएगी.
अब आपको इस ऐप्लिकेशन के लिए, Firebase Authentication को कॉन्फ़िगर करना होगा.
पुष्टि करने के लिए ईमेल/पासवर्ड की मदद से साइन इन करने की सुविधा देने वाली सेवा चालू करें
- अब भी Firebase कंसोल में, कंसोल का Authentication सेक्शन खोलें.
- अपने प्रोजेक्ट के लिए Firebase Authentication सेट अप करने के लिए, शुरू करें पर क्लिक करें.
- साइन-इन करने का तरीका टैब चुनें.
- नेटिव प्रोवाइडर सेक्शन में जाकर, ईमेल/पासवर्ड चुनें.
- ईमेल/पासवर्ड को चालू करें और सेव करें पर क्लिक करें.
टेस्ट करने वाले उपयोगकर्ता को जोड़ना
- Authentication सेक्शन में जाकर, उपयोगकर्ता टैब खोलें.
- उपयोगकर्ता जोड़ें पर क्लिक करें.
- अपने टेस्ट उपयोगकर्ता के लिए ईमेल और पासवर्ड डालें. इसके बाद, उपयोगकर्ता जोड़ें पर क्लिक करें.
ऐप्लिकेशन को आज़माएं
Xcode पर वापस जाएं और iOS सिम्युलेटर पर ऐप्लिकेशन चलाएं. आपने जिस टेस्ट यूज़र को अभी बनाया है उसके ईमेल और पासवर्ड से साइन इन करें. साइन इन करने के बाद, पोस्ट बनाएं, किसी मौजूदा पोस्ट पर टिप्पणी करें, और पोस्ट को स्टार/अनस्टार करें.
6. App Attest की पुष्टि करने वाली सेवा को कॉन्फ़िगर करना
इस चरण में, आपको Firebase कंसोल में App Check को कॉन्फ़िगर करना होगा, ताकि वह App Attest प्रोवाइडर का इस्तेमाल कर सके.
- Firebase कंसोल में, कंसोल के App Check सेक्शन पर जाएं.
- शुरू करें पर क्लिक करें.
- ऐप्लिकेशन टैब में, अपने ऐप्लिकेशन पर क्लिक करके उसकी जानकारी देखें.
- App Attest को कॉन्फ़िगर करने के लिए, App Attest पर क्लिक करें. इसके बाद, अपने Apple Developer खाते का टीम आईडी डालें. यह आईडी, Apple Developer पोर्टल पर Membership सेक्शन में देखा जा सकता है:
- सेव करें पर क्लिक करें.
अब आपके पास एक ऐसा Firebase प्रोजेक्ट है जो हमारे नए ऐप्लिकेशन से कनेक्ट है. साथ ही, App Check की सुविधा चालू है.
अब हमारी खास पुष्टि करने वाली सेवा को कॉन्फ़िगर किया जा सकता है! इस वर्कफ़्लो के बारे में ज़्यादा जानने के लिए, iOS पर App Attest के साथ App Check चालू करना लेख पढ़ें.
7. अपने ऐप्लिकेशन के लिए, App Attest को कॉन्फ़िगर करना
अब Firebase App Check SDK टूल का इस्तेमाल करने और कुछ क्लाइंट कोड लागू करने का समय है.
सबसे पहले, आपको Xcode प्रोजेक्ट को कॉन्फ़िगर करना होगा, ताकि एसडीके, Apple के App Attest API का इस्तेमाल कर सके. इससे यह पक्का किया जा सकेगा कि आपके ऐप्लिकेशन से भेजे गए अनुरोध, आपके ऐप्लिकेशन के असली इंस्टेंस से आए हैं.
- Xcode प्रोजेक्ट में, अपने ऐप्लिकेशन टारगेट के लिए App Attest की सुविधा जोड़ें:
- अपने ऐप्लिकेशन की टारगेट सेटिंग में जाकर, Signing & Capabilities टैब खोलें
- "+" बटन पर क्लिक करें
- डायलॉग बॉक्स में, App Attest सुविधा
को ढूंढें और उसे चुनें
- पिछले चरण को पूरा करने के बाद, आपके Xcode प्रोजेक्ट के रूट फ़ोल्डर में एक फ़ाइल
DatabaseExample (iOS).entitlements
दिखेगी. DatabaseExample (iOS).entitlements
फ़ाइल में,App Attest Environment
कुंजी की वैल्यू कोproduction.
पर सेट करें
इन चरणों को पूरा करने और फ़िज़िकल iOS डिवाइस (iPhone/iPad) पर ऐप्लिकेशन लॉन्च करने के बाद, ऐप्लिकेशन अब भी Realtime Database को ऐक्सेस कर पाएगा. बाद के चरण में, आपको App Check लागू करना होगा. इससे, गैर-भरोसेमंद ऐप्लिकेशन और डिवाइसों से भेजे जा रहे अनुरोध ब्लॉक हो जाएंगे.
इस वर्कफ़्लो के बारे में ज़्यादा जानने के लिए, iOS पर App Attest के साथ App Check की सुविधा चालू करना लेख पढ़ें.
8. iOS सिम्युलेटर के लिए, डीबग अटेस्टेशन प्रोवाइडर को कॉन्फ़िगर करना
Firebase App Check Debug प्रोवाइडर की मदद से, ऐसे ऐप्लिकेशन की जांच की जा सकती है जिनमें Firebase App Check लागू किया गया हो. जांच, डेवलपमेंट प्रोसेस के दौरान, iOS सिम्युलेटर जैसे ऐसे एनवायरमेंट में की जा सकती है जिन पर भरोसा नहीं किया जा सकता. इसके बाद, आपको डीबग प्रोवाइडर को एक साथ कॉन्फ़िगर करना होगा.
अपने ऐप्लिकेशन में Firebase debug provider इंस्टॉल करना
पहला विकल्प: अपनी फ़ैक्ट्री में, डीबग प्रोवाइडर का इंस्टेंस शर्त के हिसाब से बनाएं
आपने App Check provider factory बनाते समय, इनमें से ज़्यादातर काम कर लिए थे. इस चरण में, आपको डीबग प्रोवाइडर से जनरेट किए गए लोकल डीबग सीक्रेट की लॉगिंग जोड़नी होगी. इससे, डीबग करने के लिए Firebase कंसोल में ऐप्लिकेशन के इस इंस्टेंस को रजिस्टर किया जा सकेगा.
इस कोड का इस्तेमाल करके, 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
}
}
इस तरीके से, हमें एनवायरमेंट के हिसाब से App Check को कॉन्फ़िगर करने में ज़्यादा आसानी होती है. उदाहरण के लिए, DeviceCheck जैसे पुष्टि करने की सेवा देने वाले किसी अन्य प्लैटफ़ॉर्म का इस्तेमाल किया जा सकता है. इसके अलावा, ओएस के उन वर्शन पर पुष्टि करने की सेवा देने वाले कस्टम प्लैटफ़ॉर्म का इस्तेमाल किया जा सकता है जहां App Attest उपलब्ध नहीं है. यहां एक उदाहरण दिया गया है:
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
}
}
दूसरा विकल्प: AppCheckDebugProviderFactory
इंस्टॉल करना
आसान मामलों के लिए, Firebase ऐप्लिकेशन इंस्टेंस को कॉन्फ़िगर करने से पहले, AppCheckDebugProviderFactory
को कुछ समय के लिए या कुछ शर्तों के साथ इंस्टॉल किया जा सकता है:
init() {
#if targetEnvironment(simulator)
let providerFactory = AppCheckDebugProviderFactory()
#else
let providerFactory = MyAppCheckProviderFactory()
#endif
AppCheck.setAppCheckProviderFactory(providerFactory)
FirebaseApp.configure()
}
इससे आपको App Check provider factory बनाते समय, कोड की कुछ लाइनें लिखने की ज़रूरत नहीं पड़ेगी.
Firebase कंसोल में अपना डीबग सीक्रेट रजिस्टर करना
अपने iOS सिम्युलेटर से डीबग सीक्रेट पाना
- अगर आपने ऊपर दिए गए दूसरे विकल्प के तौर पर
AppCheckDebugProviderFactory
को इंस्टॉल किया है, तो आपको अपने ऐप्लिकेशन के लिए डीबग लॉगिंग चालू करनी होगी. इसके लिए, ऐप्लिकेशन लॉन्च करने के तर्कों में-FIRDebugEnabled
जोड़ें: - अपने ऐप्लिकेशन को सिम्युलेटर पर चलाना
- Xcode कंसोल में डीबग सीक्रेट ढूंढें. इसे तेज़ी से ढूंढने के लिए, कंसोल फ़िल्टर का इस्तेमाल करें:
ध्यान दें: डीबग सीक्रेट, ऐप्लिकेशन को पहली बार लॉन्च करने पर आपके सिम्युलेटर के लिए जनरेट होता है. इसे उपयोगकर्ता की डिफ़ॉल्ट सेटिंग में सेव किया जाता है. ऐप्लिकेशन हटाने, सिम्युलेटर को रीसेट करने या किसी दूसरे सिम्युलेटर का इस्तेमाल करने पर, नया डीबग सीक्रेट जनरेट होगा. नया डीबग सीक्रेट रजिस्टर करना न भूलें.
डीबग सीक्रेट रजिस्टर करना
- Firebase कंसोल में वापस जाकर, App Check सेक्शन पर जाएं.
- ऐप्लिकेशन टैब में, अपने ऐप्लिकेशन पर क्लिक करके उसकी जानकारी देखें.
- ओवरफ़्लो मेन्यू में जाकर, डीबग टोकन मैनेज करें चुनें:
- Xcode कंसोल से कॉपी किया गया सीक्रेट जोड़ें. इसके बाद, सेव करें
पर क्लिक करें
इन चरणों को पूरा करने के बाद, ऐप्लिकेशन की जांच करने की सुविधा लागू होने पर भी, सिम्युलेटर पर ऐप्लिकेशन का इस्तेमाल किया जा सकता है.
ध्यान दें: डीबग प्रोवाइडर को खास तौर पर इसलिए डिज़ाइन किया गया था, ताकि डीबग सीक्रेट के लीक होने से बचा जा सके. मौजूदा तरीके में, आपको अपने सोर्स कोड में डीबग सीक्रेट सेव करने की ज़रूरत नहीं होती.
इस फ़्लो के बारे में ज़्यादा जानकारी, दस्तावेज़ में मिल सकती है. iOS पर डीबग प्रोवाइडर के साथ App Check का इस्तेमाल करना लेख पढ़ें.
9. Firebase Realtime Database के लिए, App Check लागू करने की सुविधा चालू करना
फ़िलहाल, हमारा ऐप्लिकेशन एक AppCheckProviderFactory
का एलान करता है, जो असली डिवाइसों के लिए AppAttestProvider
दिखाता है. फ़िज़िकल डिवाइस पर चलने के दौरान, आपका ऐप्लिकेशन पुष्टि करेगा और नतीजों को Firebase बैकएंड पर भेजेगा. हालांकि, Firebase बैकएंड अब भी किसी भी डिवाइस, iOS सिम्युलेटर, स्क्रिप्ट वगैरह से मिले अनुरोधों को स्वीकार करता है. यह मोड तब काम आता है, जब आपके पास ऐसे उपयोगकर्ता हों जिनके पास App Check के बिना ऐप्लिकेशन का पुराना वर्शन हो और आपको अभी ऐक्सेस की जांच लागू नहीं करनी हो.
अब आपको App Check लागू करने की सुविधा चालू करनी होगी, ताकि यह पक्का किया जा सके कि Firebase ऐप्लिकेशन को सिर्फ़ भरोसेमंद डिवाइसों से ऐक्सेस किया जा सकता है. App Check इंटिग्रेट किए बिना ऐप्लिकेशन के पुराने वर्शन काम करना बंद कर देंगे. ऐसा तब होगा, जब Firebase प्रोजेक्ट के लिए App Check को लागू करने की सुविधा चालू की जाएगी.
- Firebase कंसोल में App Check सेक्शन में जाकर, Realtime Database पर क्लिक करें. इससे आपको इसकी ज़्यादा जानकारी दिखेगी.
- लागू करें पर क्लिक करें.
- पुष्टि करने वाले डायलॉग बॉक्स में दी गई जानकारी पढ़ें. इसके बाद, लागू करें पर क्लिक करें.
इन चरणों को पूरा करने के बाद, सिर्फ़ भरोसेमंद ऐप्लिकेशन ही डेटाबेस को ऐक्सेस कर पाएंगे. अन्य सभी ऐप्लिकेशन ब्लॉक कर दिए जाएंगे.
किसी ऐसे ऐप्लिकेशन से Realtime Database को ऐक्सेस करने की कोशिश करना जो नियमों का उल्लंघन करता हो
App Check को लागू होते हुए देखने के लिए, यह तरीका अपनाएं:
- App Check के रजिस्ट्रेशन को बंद करने के लिए,
init
में मौजूद अपने ऐप्लिकेशन के एंट्री पॉइंट केDatabaseExampleApp
तरीके में, App Check के रजिस्ट्रेशन कोड को टिप्पणी के तौर पर मार्क करें. - डिवाइस > सभी कॉन्टेंट और सेटिंग मिटाएं को चुनकर, सिम्युलेटर को रीसेट करें. इससे सिम्युलेटर का डेटा मिट जाएगा और डिवाइस टोकन अमान्य हो जाएगा.
- सिम्युलेटर पर ऐप्लिकेशन को फिर से चलाएं.
- अब आपको गड़बड़ी का यह मैसेज दिखेगा:
[FirebaseDatabase][I-RDB034005] Firebase Database connection was forcefully killed by the server. Will not attempt reconnect. Reason: Invalid appcheck token.
App Check को फिर से चालू करने के लिए, यह तरीका अपनाएं:
DatabaseExampleApp
में, App Check के रजिस्ट्रेशन कोड से टिप्पणी हटाएं.- ऐप्लिकेशन को रीस्टार्ट करें.
- Xcode के कंसोल में मौजूद नए App Check टोकन को नोट करें.
- Firebase कंसोल में, अपने ऐप्लिकेशन की App Check सेटिंग में डीबग टोकन रजिस्टर करें.
- ऐप्लिकेशन को फिर से चलाएं.
- अब आपको गड़बड़ी का मैसेज नहीं दिखेगा. साथ ही, ऐप्लिकेशन में नई पोस्ट और टिप्पणियां जोड़ी जा सकेंगी.
10. बधाई हो!
अब आपको इनके बारे में जानकारी मिल गई है:
- किसी मौजूदा प्रोजेक्ट में App Check जोड़ना
- अपने ऐप्लिकेशन के प्रोडक्शन वर्शन के लिए, App Attest की पुष्टि करने वाले प्रोवाइडर को कॉन्फ़िगर करना
- सिम्युलेटर पर अपने ऐप्लिकेशन की जांच करने के लिए, पुष्टि करने वाली सेवा को डीबग करने की सुविधा कॉन्फ़िगर करना
- ऐप्लिकेशन के वर्शन को रोल आउट करने की प्रोसेस पर नज़र रखें, ताकि आपको पता चल सके कि अपने Firebase प्रोजेक्ट के लिए App Check को कब लागू करना है
- App Check लागू करने की सुविधा चालू करना
अगले चरण
Firebase रिमोट कॉन्फ़िगरेशन का इस्तेमाल करके, Firebase App Check को धीरे-धीरे रोल आउट करने के बारे में जानकारी देने वाले कोडलैब में जाकर, Remote Config का इस्तेमाल करके अपने उपयोगकर्ताओं के लिए App Check को धीरे-धीरे रोल आउट करने का तरीका जानें
यहां कुछ अन्य संसाधन दिए गए हैं, जिनसे आपको मदद मिल सकती है
इस कोडलैब में बताया गया सेटअप, ज़्यादातर मामलों में काम करेगा. हालांकि, अगर आपको ज़्यादा सुविधा चाहिए, तो App Check का इस्तेमाल करें. ज़्यादा जानकारी के लिए, यहां दिए गए लिंक देखें: