Google Identity टूलकिट से Firebase से पुष्टि पर माइग्रेट करें

Google Identity Toolkit का नया वर्शन, Firebase Authentication के तौर पर रिलीज़ किया गया है. अब Identity Toolkit पर कोई नई सुविधा नहीं जोड़ी जाएगी. सभी नई सुविधाएं, Firebase Authentication पर उपलब्ध कराई जाएंगी. हम Identity Toolkit के डेवलपर को सलाह देते हैं कि वे अपने ऐप्लिकेशन के लिए, Firebase Authentication पर जल्द से जल्द माइग्रेट करें. हालांकि, Identity Toolkit काम करता रहेगा और बिना किसी सूचना के इसे बंद नहीं किया जाएगा.

नई सुविधाएं

Firebase Authentication में, Google Identity Toolkit की तुलना में पहले से ही कुछ अहम सुविधाएं बेहतर हैं:

  • Firebase के सभी प्रॉडक्ट का ऐक्सेस

    Firebase एक ऐसा मोबाइल प्लैटफ़ॉर्म है जो तेज़ी से अच्छी क्वालिटी वाले ऐप्लिकेशन डेवलप करने, अपना उपयोगकर्ता आधार बढ़ाने, और ज़्यादा पैसे कमाने में आपकी मदद करता है. Firebase में कई ऐसी सुविधाएं हैं जिनका इस्तेमाल अपनी ज़रूरत के हिसाब से किया जा सकता है. इसमें इन सुविधाओं के लिए इन्फ़्रास्ट्रक्चर शामिल है: मोबाइल ऐनलिटिक्स, क्लाउड से मैसेज, रीयलटाइम डेटाबेस, फ़ाइल स्टोरेज, स्टैटिक होस्टिंग, रिमोट कॉन्फ़िगरेशन, मोबाइल क्रैश रिपोर्टिंग, और Android टेस्टिंग.

  • अपडेट किए गए यूज़र इंटरफ़ेस (यूआई)

    हमने Google की यूज़र एक्सपीरियंस (यूएक्स) से जुड़ी नई रिसर्च के आधार पर, यूज़र इंटरफ़ेस (यूआई) के फ़्लो को पूरी तरह से फिर से बनाया है. इसमें पासवर्ड वापस पाने, खाता लिंक करने, नए/मौजूदा खाते के बीच अंतर करने की प्रोसेस शामिल है. इन प्रोसेस को कोड करने और डीबग करने में अक्सर काफ़ी समय लगता है. इसमें Android पर पासवर्ड के लिए Smart Lock की सुविधा इंटिग्रेट की गई है. इससे, ऐप्लिकेशन में साइन-इन और साइन-अप करने वाले लोगों की संख्या में काफ़ी बढ़ोतरी हुई है. यह आपके ऐप्लिकेशन से मेल खाने वाली थीम में आसानी से बदलाव करने की सुविधा भी देता है. साथ ही, ज़्यादा से ज़्यादा कस्टमाइज़ेशन के लिए, Android और iOS वर्शन को ओपन सोर्स किया गया है.

  • सर्वर को आसानी से सेट अप करना

    हमने डेवलपर के लिए, Firebase से पुष्टि करने की सुविधा का इस्तेमाल करना आसान बना दिया है. Identity Toolkit के साथ, हमने देखा कि कई डेवलपर ने ईमेल से खाता वापस पाने की सुविधा लागू नहीं की. इससे, अगर उपयोगकर्ता अपना पासवर्ड भूल जाते हैं, तो उनके लिए अपना खाता वापस पाना मुश्किल हो जाता है. Firebase Authentication, उपयोगकर्ता को ईमेल से पुष्टि करने, पासवर्ड रीसेट करने, और बदले गए पासवर्ड के बारे में सूचना देने वाले ईमेल भेज सकता है. साथ ही, उपयोगकर्ताओं के लिए टेक्स्ट को आसानी से पसंद के मुताबिक बनाया जा सकता है. इसके अलावा, अब आपको रीडायरेक्ट होस्ट करने और पासवर्ड बदलने की कार्रवाइयां पूरी करने के लिए, यूज़र इंटरफ़ेस (यूआई) विजेट होस्ट करने की ज़रूरत नहीं है.

  • नई Admin console

    Firebase में नया डेवलपर कंसोल है. साथ ही, Authentication सेक्शन में जाकर, अपने उपयोगकर्ताओं को देखा, बदला, और मिटाया जा सकता है. इससे, साइन-इन और साइन-अप फ़्लो को डीबग करने में बहुत मदद मिल सकती है. कंसोल में, पुष्टि करने के तरीके कॉन्फ़िगर करने और ईमेल टेंप्लेट को पसंद के मुताबिक बनाने का विकल्प भी होता है.

  • नए एसडीके

    Identity Toolkit के सभी सर्वर एपीआई, अब हमारी हर क्लाइंट लाइब्रेरी (Android, iOS, वेब) के साथ नेटिव तौर पर उपलब्ध हैं. डेवलपर, पुराने और नए उपयोगकर्ताओं को साइन इन और साइन अप करने की सुविधा दे पाएंगे. साथ ही, वे उपयोगकर्ता प्रॉपर्टी ऐक्सेस कर पाएंगे, खातों को लिंक कर पाएंगे, उन्हें अपडेट कर पाएंगे, और उन्हें मिटा पाएंगे. इसके अलावा, वे पासवर्ड रीसेट कर पाएंगे और अन्य काम कर पाएंगे. इसके लिए, उन्हें किसी तय यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल नहीं करना होगा. अगर आपको यह एपीआई पसंद नहीं है, तो आपके पास साइन इन करने की पूरी प्रोसेस और अनुभव को मैन्युअल तरीके से बनाने का विकल्प होता है.

  • मोबाइल ऐप्लिकेशन के लिए सेशन मैनेजमेंट

    Identity Toolkit की मदद से, ऐप्लिकेशन ने Identity Toolkit से मिले शुरुआती पुष्टि करने वाले इवेंट के आधार पर, अपनी सेशन की स्थिति तय की. Firebase Auth, बैकएंड सेवा का इस्तेमाल करता है. यह सेवा, पुष्टि करने के इवेंट से मिले रीफ़्रेश टोकन को लेती है और उसे Android, iOS, और JavaScript के लिए एक घंटे के ऐक्सेस टोकन से बदल देती है. जब कोई उपयोगकर्ता अपना पासवर्ड बदलता है, तो रीफ़्रेश टोकन अब नए ऐक्सेस टोकन जनरेट नहीं कर पाएंगे. इससे, उपयोगकर्ता को तब तक ऐक्सेस नहीं मिलेगा, जब तक वह उस डिवाइस पर फिर से पुष्टि नहीं कर लेता.

  • गुमनाम और GitHub ऑथेंटिकेशन

    Firebase Authentication में, पुष्टि करने के दो नए तरीके उपलब्ध हैं: GitHub और बिना नाम के उपयोगकर्ता के तौर पर पुष्टि करना. पहचान छिपाकर साइन इन करने की सुविधा का इस्तेमाल, यूनीक यूज़र आईडी बनाने के लिए किया जा सकता है. इसके लिए, उपयोगकर्ता को साइन इन या साइन अप करने की किसी भी प्रोसेस से नहीं गुज़रना पड़ता. अब किसी गुमनाम उपयोगकर्ता के तौर पर भी, पुष्टि किए गए एपीआई कॉल किए जा सकते हैं. जैसे, सामान्य उपयोगकर्ता के तौर पर किए जाते हैं. जब उपयोगकर्ता किसी खाते के लिए साइन अप करता है, तो उसकी सभी गतिविधियों को उसी यूज़र आईडी के साथ सेव किया जाता है. यह सर्वर साइड शॉपिंग कार्ट या किसी ऐसे ऐप्लिकेशन के लिए बहुत अच्छा है जहां आपको साइन-अप फ़्लो के ज़रिए उपयोगकर्ता को भेजने से पहले, उससे जुड़ना हो.

सुविधाओं में अंतर

Identity Toolkit की कुछ सुविधाएं, फ़िलहाल Firebase Authentication में उपलब्ध नहीं हैं. वहीं, अन्य सुविधाओं को फिर से डिज़ाइन किया गया है और वे अलग तरीके से काम करती हैं. अगर ये सुविधाएँ आपके ऐप्लिकेशन के लिए ज़रूरी हैं, तो हो सकता है कि आप तुरंत माइग्रेट न करें. कई मामलों में, ये सुविधाएँ आपके ऐप्लिकेशन के लिए ज़रूरी नहीं होती हैं. इसके अलावा, इनके लिए आसान फ़ॉलबैक उपलब्ध हो सकते हैं. इससे आपको माइग्रेट करने में मदद मिलेगी.

सर्वर साइड में अंतर

Identity Toolkit की मुख्य सेवा में सिर्फ़ छोटे-मोटे अपडेट किए गए हैं. इसमें इसके बुनियादी REST API, खाता पुष्टि करने का लॉजिक, और मुख्य उपयोगकर्ता डेटाबेस शामिल हैं. हालांकि, कुछ सुविधाएं और Firebase Authentication को अपनी सेवा में इंटिग्रेट करने का तरीका बदल गया है.

  • पहचान की पुष्टि करने वाली कंपनियां

    PayPal और AOL का इस्तेमाल नहीं किया जा सकता. इन आईडीपी के खातों वाले उपयोगकर्ता, अब भी पासवर्ड वापस पाने के फ़्लो का इस्तेमाल करके आपके ऐप्लिकेशन में साइन इन कर सकते हैं. साथ ही, अपने खाते के लिए पासवर्ड सेट अप कर सकते हैं.

  • सर्वर लाइब्रेरी

    फ़िलहाल, Java, Node.js, Python, Go, और C# के लिए Firebase Admin SDK उपलब्ध हैं.

  • खाते के मैनेजमेंट से जुड़े ईमेल

    पासवर्ड रीसेट करने, ईमेल की पुष्टि करने, और ईमेल बदलने से जुड़े मैसेज, Firebase या डेवलपर के खुद के मेल सर्वर से भेजे जा सकते हैं. फ़िलहाल, Firebase के ईमेल टेंप्लेट में सिर्फ़ सीमित बदलाव किए जा सकते हैं.

  • ईमेल पता बदलने की पुष्टि

    Identity Toolkit में, जब कोई उपयोगकर्ता अपना ईमेल पता बदलने का फ़ैसला करता है, तो उसे नए पते पर एक ईमेल भेजा जाता है. इसमें ईमेल पता बदलने की प्रोसेस जारी रखने के लिए एक लिंक होता है.

    ईमेल पता बदलने की पुष्टि करने के लिए, Firebase पुराने ईमेल पते पर एक ईमेल भेजता है. इसमें बदलाव को पहले जैसा करने के लिए एक लिंक होता है.

  • आईडीपी रोलआउट

    Identity Toolkit में, पहचान देने वाली सेवाओं को धीरे-धीरे साइन-इन सिस्टम में जोड़ने की सुविधा थी. इससे, आपको सहायता के लिए किए गए अनुरोधों पर पड़ने वाले असर के बारे में पता चल पाता था. इस सुविधा को Firebase Authentication से हटा दिया गया है.

क्लाइंट साइड में अंतर

Firebase में, Google Identity Toolkit की ओर से दी जाने वाली सुविधाओं को दो कॉम्पोनेंट में बांटा गया है:

  • Firebase Authentication SDK टूल

    Firebase Authentication में, Identity Toolkit के REST API से मिलने वाली सुविधा को Android, iOS, और JavaScript के लिए उपलब्ध क्लाइंट SDK टूल में पैकेज किया गया है. एसडीके का इस्तेमाल करके, उपयोगकर्ताओं को साइन इन और साइन अप करने की सुविधा दी जा सकती है. साथ ही, उपयोगकर्ता की प्रोफ़ाइल की जानकारी ऐक्सेस की जा सकती है. इसके अलावा, खातों को लिंक, अपडेट, और मिटाया जा सकता है. साथ ही, REST कॉल के ज़रिए बैक एंड सेवा से कम्यूनिकेट करने के बजाय, क्लाइंट एसडीके का इस्तेमाल करके पासवर्ड रीसेट किए जा सकते हैं.

  • FirebaseUI Auth

    साइन-इन, साइन-अप, पासवर्ड रिकवरी, और खाते को लिंक करने की सुविधा को मैनेज करने वाले सभी यूज़र इंटरफ़ेस (यूआई) फ़्लो को, Firebase Authentication SDK टूल का इस्तेमाल करके फिर से बनाया गया है. ये iOS और Android के लिए ओपन सोर्स एसडीके के तौर पर उपलब्ध हैं. इनकी मदद से, Identity Toolkit में उपलब्ध नहीं होने वाले तरीकों से फ़्लो को पूरी तरह से पसंद के मुताबिक बनाया जा सकता है.

इनके अलावा, अन्य अंतर भी हैं:

  • सेशन और माइग्रेशन

    Identity Toolkit और Firebase Authentication में सेशन को अलग-अलग तरीके से मैनेज किया जाता है. इसलिए, SDK टूल को अपग्रेड करने पर, आपके उपयोगकर्ताओं के मौजूदा सेशन बंद हो जाएंगे. साथ ही, उन्हें फिर से साइन इन करना होगा.

शुरू करने से पहले

Identity Toolkit से Firebase Authentication पर माइग्रेट करने से पहले, आपको यह काम करना होगा

  1. Firebase कंसोल खोलें. इसके बाद, Google प्रोजेक्ट इंपोर्ट करें पर क्लिक करें और अपना Identity Toolkit प्रोजेक्ट चुनें.

  2. IAM और एडमिन पेज खोलने के लिए, > अनुमतियां पर क्लिक करें.

  3. सेवा खाते पेज खोलें. यहां आपको वह सेवा खाता दिखेगा जिसे आपने पहले Identity Toolkit के लिए कॉन्फ़िगर किया था.

  4. सेवा खाते के बगल में, > कुंजी बनाएं पर क्लिक करें. इसके बाद, निजी कुंजी बनाएं डायलॉग में, कुंजी का टाइप JSON पर सेट करें. इसके बाद, बनाएं पर क्लिक करें. आपके लिए, सेवा खाते के क्रेडेंशियल वाली JSON फ़ाइल डाउनलोड की जाती है. आपको अगले चरण में एसडीके को शुरू करने के लिए इसकी ज़रूरत होगी.

  5. Firebase कंसोल पर वापस जाएं. Auth सेक्शन में, ईमेल टेंप्लेट पेज खोलें. इस पेज पर, अपने ऐप्लिकेशन के ईमेल टेंप्लेट को पसंद के मुताबिक बनाएं.

    Identity Toolkit में, जब उपयोगकर्ता पासवर्ड रीसेट करते थे, ईमेल पते बदलते थे, और ईमेल पतों की पुष्टि करते थे, तब आपको Identity Toolkit सर्वर से ओओबी कोड पाना होता था. इसके बाद, आपको ईमेल के ज़रिए उपयोगकर्ताओं को कोड भेजना होता था. Firebase, आपके कॉन्फ़िगर किए गए टेंप्लेट के आधार पर ईमेल भेजता है. इसके लिए, आपको कोई अतिरिक्त कार्रवाई करने की ज़रूरत नहीं होती.

  6. ज़रूरी नहीं: अगर आपको अपने सर्वर पर Firebase सेवाओं को ऐक्सेस करना है, तो Firebase SDK टूल इंस्टॉल करें.

    1. npm की मदद से, Firebase Node.js मॉड्यूल इंस्टॉल किया जा सकता है:

      $ npm init
      $ npm install --save firebase-admin
      
    2. अपने कोड में, Firebase को इन तरीकों से ऐक्सेस किया जा सकता है:

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

इसके बाद, अपने ऐप्लिकेशन के प्लैटफ़ॉर्म के लिए माइग्रेशन के चरण पूरे करें: Android, iOS, वेब.

सर्वर और JavaScript

ध्यान देने लायक बदलाव

Identity Toolkit के मुकाबले, Firebase के वेब वर्शन में कई अन्य अंतर भी हैं.

  • वेब सेशन मैनेजमेंट

    पहले, जब कोई उपयोगकर्ता Identity Toolkit विजेट का इस्तेमाल करके पुष्टि करता था, तो उसके लिए एक कुकी सेट की जाती थी. इसका इस्तेमाल सेशन को बूटस्ट्रैप करने के लिए किया जाता था. इस कुकी का इस्तेमाल दो हफ़्तों तक किया जा सकता था. इसका इस्तेमाल, उपयोगकर्ता को खाता मैनेज करने वाले विजेट का इस्तेमाल करने की अनुमति देने के लिए किया जाता था. इससे उपयोगकर्ता, पासवर्ड और ईमेल पता बदल सकता था. कुछ साइटें इस कुकी का इस्तेमाल, साइट पर पेज के लिए किए गए सभी अनुरोधों की पुष्टि करने के लिए करती थीं. अन्य साइटें इस कुकी का इस्तेमाल, अपने फ़्रेमवर्क के कुकी मैनेजमेंट सिस्टम के ज़रिए अपनी कुकी बनाने के लिए करती हैं.

    Firebase क्लाइंट एसडीके अब Firebase आईडी टोकन मैनेज करते हैं. साथ ही, सेशन को चालू रखने के लिए, Firebase Authentication के बैकएंड के साथ काम करते हैं. जब खाते में अहम बदलाव (जैसे कि उपयोगकर्ता के पासवर्ड में बदलाव) होते हैं, तो बैकएंड सेशन की समयसीमा खत्म कर देता है. वेब क्लाइंट पर Firebase आईडी टोकन, कुकी के तौर पर अपने-आप सेट नहीं होते. इनकी अवधि सिर्फ़ एक घंटे की होती है. अगर आपको सिर्फ़ एक घंटे के सेशन चाहिए, तो Firebase आईडी टोकन का इस्तेमाल कुकी के तौर पर नहीं किया जा सकता. ऐसा इसलिए, ताकि आपके पेज के सभी अनुरोधों की पुष्टि की जा सके. इसके बजाय, आपको उपयोगकर्ता के लॉग इन करने पर, एक लिसनर सेट अप करना होगा. साथ ही, Firebase आईडी टोकन पाना, टोकन की पुष्टि करना, और अपने फ़्रेमवर्क के कुकी मैनेजमेंट सिस्टम के ज़रिए अपनी कुकी बनाना होगा.

    आपको अपने ऐप्लिकेशन की सुरक्षा से जुड़ी ज़रूरतों के आधार पर, अपनी कुकी के सेशन की लाइफ़टाइम सेट करनी होगी.

  • वेब पर साइन इन करने का फ़्लो

    पहले, साइन इन करने की प्रोसेस शुरू होने पर उपयोगकर्ताओं को accountchooser.com पर रीडायरेक्ट किया जाता था. इससे यह पता चलता था कि उपयोगकर्ता किस आइडेंटिफ़ायर का इस्तेमाल करना चाहता है. Firebase Auth के यूज़र इंटरफ़ेस (यूआई) का फ़्लो अब साइन इन करने के तरीकों की सूची से शुरू होता है. इसमें ईमेल का विकल्प भी शामिल है. यह वेब के लिए accountchooser.com पर जाता है और Android पर hintRequest API का इस्तेमाल करता है. इसके अलावा, Firebase यूज़र इंटरफ़ेस (यूआई) में अब ईमेल पतों की ज़रूरत नहीं है. इससे, पहचान छिपाने वाले उपयोगकर्ताओं, कस्टम ऑथराइज़ेशन वाले उपयोगकर्ताओं या उन उपयोगकर्ताओं को आसानी से मदद की जा सकेगी जिनके लिए ईमेल पतों की ज़रूरत नहीं होती.

  • खाता मैनेज करने वाला विजेट

    यह विजेट, उपयोगकर्ताओं को ईमेल पते बदलने, पासवर्ड बदलने या अपने खातों को पहचान देने वाली कंपनियों से अनलिंक करने के लिए यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराता है. फ़िलहाल, इस पर काम चल रहा है.

  • साइन-इन बटन/विजेट

    साइन-इन बटन और उपयोगकर्ता कार्ड जैसे विजेट अब उपलब्ध नहीं हैं. इन्हें Firebase Authentication API का इस्तेमाल करके आसानी से बनाया जा सकता है.

  • signOutUrl मौजूद नहीं है

    आपको firebase.auth.signOut() को कॉल करना होगा और कॉलबैक को मैनेज करना होगा.

  • No oobActionUrl

    अब ईमेल भेजने की सुविधा को Firebase मैनेज करता है. इसे Firebase कंसोल में कॉन्फ़िगर किया जाता है.

  • सीएसएस को पसंद के मुताबिक बनाना

    FirebaseUI, Material Design Lite स्टाइलिंग का इस्तेमाल करता है. इससे Material Design के ऐनिमेशन डाइनैमिक तरीके से जुड़ जाते हैं.

पहला चरण: सर्वर कोड बदलना

  1. अगर आपका सर्वर, वेब उपयोगकर्ता के सेशन मैनेज करने के लिए Identity Toolkit टोकन (दो हफ़्तों के लिए मान्य) पर निर्भर करता है, तो आपको सर्वर को अपनी सेशन कुकी का इस्तेमाल करने के लिए बदलना होगा.

    1. Firebase आईडी टोकन की पुष्टि करने और उपयोगकर्ता के लिए सेशन कुकी सेट करने के लिए, एक एंडपॉइंट लागू करें. क्लाइंट ऐप्लिकेशन, इस एंडपॉइंट पर Firebase आईडी टोकन भेजता है.
    2. अगर आने वाले अनुरोध में आपकी खुद की सेशन कुकी शामिल है, तो उपयोगकर्ता को पुष्टि किया गया माना जा सकता है. अगर ऐसा नहीं है, तो अनुरोध को बिना पुष्टि वाला अनुरोध माना जाएगा.
    3. अगर आपको नहीं चाहिए कि आपके किसी भी उपयोगकर्ता का मौजूदा लॉग-इन सेशन बंद हो, तो आपको दो हफ़्ते तक इंतज़ार करना चाहिए, ताकि Identity Toolkit के सभी टोकन की समयसीमा खत्म हो जाए. इसके अलावा, अपने वेब ऐप्लिकेशन के लिए दोहरे टोकन की पुष्टि भी की जा सकती है. इसके बारे में तीसरे चरण में बताया गया है.
  2. इसके बाद, आपको टोकन की पुष्टि करने के लॉजिक को अपडेट करना होगा. ऐसा इसलिए, क्योंकि Firebase टोकन, Identity Toolkit टोकन से अलग होते हैं. अपने सर्वर पर Firebase Server SDK इंस्टॉल करें. अगर Firebase Server SDK के साथ काम न करने वाली किसी भाषा का इस्तेमाल किया जाता है, तो अपने एनवायरमेंट के लिए JWT टोकन की पुष्टि करने वाली लाइब्रेरी डाउनलोड करें और टोकन की पुष्टि करें.

  3. ऊपर दिए गए बदलाव पहली बार करने पर, आपके पास ऐसे कोड पाथ हो सकते हैं जो Identity Toolkit टोकन पर निर्भर होते हैं. अगर आपके पास iOS या Android ऐप्लिकेशन हैं, तो उपयोगकर्ताओं को ऐप्लिकेशन के नए वर्शन पर अपग्रेड करना होगा, ताकि नए कोड पाथ काम कर सकें. अगर आपको अपने उपयोगकर्ताओं को ऐप्लिकेशन अपडेट करने के लिए मजबूर नहीं करना है, तो सर्वर पर पुष्टि करने की अतिरिक्त सुविधा जोड़ी जा सकती है. यह सुविधा, टोकन की जांच करती है और यह तय करती है कि टोकन की पुष्टि करने के लिए, Firebase SDK टूल या Identity Toolkit SDK टूल का इस्तेमाल करना है या नहीं. अगर आपके पास सिर्फ़ वेब ऐप्लिकेशन है, तो पुष्टि करने के सभी नए अनुरोध Firebase पर भेज दिए जाएंगे. इसलिए, आपको सिर्फ़ Firebase टोकन की पुष्टि करने के तरीकों का इस्तेमाल करना होगा.

Firebase Web API का रेफ़रंस देखें.

दूसरा चरण: एचटीएमएल अपडेट करना

  1. अपने ऐप्लिकेशन में Firebase को शुरू करने वाला कोड जोड़ें:

    1. Firebase कंसोल में अपना प्रोजेक्ट खोलें.
    2. खास जानकारी वाले पेज पर, ऐप्लिकेशन जोड़ें पर क्लिक करें. इसके बाद, अपने वेब ऐप्लिकेशन में Firebase जोड़ें पर क्लिक करें. Firebase को शुरू करने वाला कोड स्निपेट दिखता है.
    3. वेब पेज में, इनिशियलाइज़ेशन स्निपेट को कॉपी करके चिपकाएं.
  2. अपने ऐप्लिकेशन में FirebaseUI Auth जोड़ें:

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. अपने ऐप्लिकेशन से Identity Toolkit SDK टूल को हटाएं.

  4. अगर आपने सेशन मैनेज करने के लिए, Identity Toolkit के आईडी टोकन का इस्तेमाल किया है, तो आपको क्लाइंट साइड पर ये बदलाव करने होंगे:

    1. Firebase में साइन इन करने के बाद, firebase.auth().currentUser.getToken() को कॉल करके Firebase आईडी टोकन पाएं.

    2. Firebase आईडी टोकन को बैकएंड सर्वर पर भेजें, उसकी पुष्टि करें, और अपनी सेशन कुकी जारी करें.

      संवेदनशील कार्रवाइयां करते समय या अपने सर्वर को पुष्टि किए गए बदलाव के अनुरोध भेजते समय, सिर्फ़ सेशन कुकी पर भरोसा न करें. आपको किसी दूसरी साइट से किए गए फ़र्ज़ी अनुरोधों (सीएसआरएफ़) से सुरक्षा के लिए अतिरिक्त उपाय करने होंगे.

      अगर आपके फ़्रेमवर्क में सीएसआरएफ़ से सुरक्षा करने की सुविधा नहीं है, तो हमले को रोकने का एक तरीका यह है कि साइन इन किए गए उपयोगकर्ता के लिए, getToken() के साथ Firebase आईडी टोकन पाएं. साथ ही, हर अनुरोध में टोकन शामिल करें. सेशन कुकी भी डिफ़ॉल्ट रूप से भेजी जाएगी. इसके बाद, आपको उस टोकन की पुष्टि करनी होगी. इसके लिए, Firebase सर्वर SDK टूल का इस्तेमाल करें. साथ ही, सेशन कुकी की जांच करें. यह जांच आपके बैकएंड फ़्रेमवर्क ने पूरी की है. इससे सीएसआरएफ़ वाले हमलों को रोकना आसान हो जाएगा. इसकी वजह यह है कि Firebase ID टोकन को सिर्फ़ वेब स्टोरेज का इस्तेमाल करके सेव किया जाता है. इसे कभी भी कुकी में सेव नहीं किया जाता.

    3. Identity Toolkit टोकन दो हफ़्ते के लिए मान्य होते हैं. आपके पास दो हफ़्तों तक चलने वाले टोकन जारी करने का विकल्प होता है. इसके अलावा, अपने ऐप्लिकेशन की सुरक्षा से जुड़ी ज़रूरतों के हिसाब से, टोकन की समयसीमा को कम या ज़्यादा किया जा सकता है. जब कोई उपयोगकर्ता साइन आउट करता है, तो सेशन कुकी मिटा दें.

तीसरा चरण: आईडीपी के दूसरे वेबलिंक अपडेट करना

  1. Firebase कंसोल में, Authentication सेक्शन खोलें. इसके बाद, साइन-इन करने का तरीका टैब पर क्लिक करें.

  2. फ़ेडरेटेड साइन-इन की सुविधा देने वाली हर कंपनी के लिए, यह तरीका अपनाएं:

    1. साइन-इन करने की सुविधा देने वाली कंपनी के नाम पर क्लिक करें.
    2. OAuth रीडायरेक्ट यूआरआई को कॉपी करें.
    3. साइन-इन की सुविधा देने वाली कंपनी के डेवलपर कंसोल में, OAuth रीडायरेक्ट यूआरआई अपडेट करें.

Android

पहला चरण: अपने ऐप्लिकेशन में Firebase जोड़ना

  1. Firebase कंसोल खोलें. इसके बाद, अपना Identity Toolkit प्रोजेक्ट चुनें. यह वही प्रोजेक्ट होना चाहिए जिसे आपने पहले ही इंपोर्ट कर लिया है.

  2. खास जानकारी वाले पेज पर, ऐप्लिकेशन जोड़ें पर क्लिक करें. इसके बाद, अपने Android ऐप्लिकेशन में Firebase जोड़ें पर क्लिक करें. 'Firebase जोड़ें' डायलॉग बॉक्स में, अपने ऐप्लिकेशन का पैकेज नाम और हस्ताक्षर करने वाले सर्टिफ़िकेट का फ़िंगरप्रिंट डालें. इसके बाद, ऐप्लिकेशन जोड़ें पर क्लिक करें. इसके बाद, google-services.json कॉन्फ़िगरेशन फ़ाइल आपके कंप्यूटर पर डाउनलोड हो जाएगी.

  3. कॉन्फ़िगरेशन फ़ाइल को अपने Android ऐप्लिकेशन मॉड्यूल की रूट डायरेक्ट्री में कॉपी करें. इस कॉन्फ़िगरेशन फ़ाइल में, प्रोजेक्ट और Google OAuth क्लाइंट की जानकारी होती है.

  4. अपने प्रोजेक्ट-लेवल की build.gradle फ़ाइल (<var>your-project</var>/build.gradle) में, defaultConfig सेक्शन में अपने ऐप्लिकेशन के पैकेज का नाम डालें:

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. साथ ही, अपने प्रोजेक्ट-लेवल की build.gradle फ़ाइल में, google-services प्लगिन को शामिल करने के लिए एक डिपेंडेंसी जोड़ें:

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. अपने ऐप्लिकेशन की App-level build.gradle फ़ाइल (<var>my-project</var>/<var>app-module</var>/build.gradle) में, google-services प्लगिन को चालू करने के लिए, सबसे नीचे यह लाइन जोड़ें:

    // Add to the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    

    google-services प्लगिन, google-services.json फ़ाइल का इस्तेमाल करता है. इससे आपके ऐप्लिकेशन को Firebase का इस्तेमाल करने के लिए कॉन्फ़िगर किया जाता है.

  7. साथ ही, ऐप्लिकेशन-लेवल की build.gradle फ़ाइल में, Firebase Authentication की डिपेंडेंसी जोड़ें:

    compile 'com.google.firebase:firebase-auth:24.0.1'
    compile 'com.google.android.gms:play-services-auth:21.4.0'
    

दूसरा चरण: Identity Toolkit SDK टूल हटाना

  1. AndroidManifest.xml फ़ाइल से Identity Toolkit का कॉन्फ़िगरेशन हटाएं. यह जानकारी, google-service.json फ़ाइल में शामिल होती है. साथ ही, इसे google-services प्लगिन लोड करता है.
  2. अपने ऐप्लिकेशन से Identity Toolkit SDK टूल को हटाएं.

तीसरा चरण: अपने ऐप्लिकेशन में FirebaseUI जोड़ना

  1. अपने ऐप्लिकेशन में FirebaseUI Auth जोड़ें.

  2. अपने ऐप्लिकेशन में, Identity Toolkit SDK टूल के कॉल को FirebaseUI के कॉल से बदलें.

iOS

पहला चरण: अपने ऐप्लिकेशन में Firebase जोड़ना

  1. नीचे दिए गए निर्देशों का पालन करके, अपने ऐप्लिकेशन में Firebase SDK टूल जोड़ें:

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. Firebase कंसोल खोलें. इसके बाद, अपना Identity Toolkit प्रोजेक्ट चुनें. यह वही प्रोजेक्ट होना चाहिए जिसे आपने पहले ही इंपोर्ट कर लिया है.

  3. खास जानकारी वाले पेज पर, ऐप्लिकेशन जोड़ें पर क्लिक करें. इसके बाद, अपने iOS ऐप्लिकेशन में Firebase जोड़ें पर क्लिक करें. 'Firebase जोड़ें' डायलॉग बॉक्स में, अपने ऐप्लिकेशन का बंडल आईडी और App Store आईडी डालें. इसके बाद, ऐप्लिकेशन जोड़ें पर क्लिक करें. इसके बाद, GoogleService-Info.plist कॉन्फ़िगरेशन फ़ाइल आपके कंप्यूटर पर डाउनलोड हो जाएगी. अगर आपके प्रोजेक्ट में एक से ज़्यादा बंडल आईडी हैं, तो हर बंडल आईडी को Firebase कंसोल में कनेक्ट करना ज़रूरी है, ताकि उसके पास अपनी GoogleService-Info.plist फ़ाइल हो.

  4. कॉन्फ़िगरेशन फ़ाइल को अपने Xcode प्रोजेक्ट के रूट में कॉपी करें और इसे सभी टारगेट में जोड़ें.

दूसरा चरण: Identity Toolkit SDK टूल हटाना

  1. अपने ऐप्लिकेशन की Podfile से GoogleIdentityToolkit को हटाएं.
  2. pod install कमांड चलाएं.

तीसरा चरण: अपने ऐप्लिकेशन में FirebaseUI जोड़ना

  1. अपने ऐप्लिकेशन में FirebaseUI Auth जोड़ें.

  2. अपने ऐप्लिकेशन में, Identity Toolkit SDK टूल के कॉल को FirebaseUI के कॉल से बदलें.