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 में कई ऐसी सुविधाएं हैं जिनका इस्तेमाल अपनी ज़रूरत के हिसाब से किया जा सकता है. इसमें ये सुविधाएं शामिल हैं: मोबाइल के लिए Analytics, क्लाउड से मैसेज भेजने की सुविधा, रीयल टाइम डेटाबेस, फ़ाइल स्टोरेज, स्टैटिक होस्टिंग, रिमोट कॉन्फ़िगरेशन, मोबाइल क्रैश रिपोर्टिंग, और Android पर टेस्टिंग.

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

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

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

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

  • नया एडमिन कंसोल

    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 की सुविधा उपलब्ध नहीं है. इन आईडीपी के खातों वाले उपयोगकर्ता, पासवर्ड रिकवरी फ़्लो की मदद से अब भी आपके ऐप्लिकेशन में साइन इन कर सकते हैं. साथ ही, वे अपने खाते के लिए पासवर्ड सेट अप कर सकते हैं.

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

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

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

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

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

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

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

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

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

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

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

  • Firebase से पुष्टि करने के SDK

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

  • FirebaseUI Auth

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

अन्य अंतरों में ये शामिल हैं:

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

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

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

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

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

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

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

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

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

    Identity Toolkit में, जब उपयोगकर्ता पासवर्ड रीसेट करते थे, ईमेल पते बदलते थे, और ईमेल पतों की पुष्टि करते थे, तब आपको Identity Toolkit सर्वर से OOB कोड लेना होता था. इसके बाद, ईमेल के ज़रिए उपयोगकर्ताओं को कोड भेजना होता था. 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 से पुष्टि करने वाले API का इस्तेमाल करके बहुत आसानी से बनाया जा सकता है.

  • signOutUrl उपलब्ध नहीं है

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

  • oobActionUrl उपलब्ध नहीं है

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

  • सीएसएस कस्टमाइज़ेशन

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

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

  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 आईडी टोकन सिर्फ़ वेब स्टोरेज का इस्तेमाल करके सेव किया जाता है. इसे कभी भी कुकी में सेव नहीं किया जाता.

    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. अपने ऐप्लिकेशन के ऐप्लिकेशन-लेवल की 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 प्लगिन, Firebase का इस्तेमाल करने के लिए, आपके ऐप्लिकेशन को कॉन्फ़िगर करने के लिए google-services.json फ़ाइल का इस्तेमाल करता है.

  7. ऐप्लिकेशन-लेवल की build.gradle फ़ाइल में, Firebase से पुष्टि करने की डिपेंडेंसी भी जोड़ें:

    compile 'com.google.firebase:firebase-auth:24.2.0'
    compile 'com.google.android.gms:play-services-auth:21.6.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 के कॉल से बदलें.