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

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

नई सुविधाएं

Google Identity Toolkit की तुलना में, Firebase से पुष्टि करने की सुविधा में पहले से ही कुछ अहम सुविधाएं मौजूद हैं:

  • Firebase के सभी टूल का ऐक्सेस

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

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

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

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

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

  • नया Admin console

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

  • नए एसडीके

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

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

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

  • बिना नाम बताए और GitHub से पुष्टि करना

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

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

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

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

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

  • आइडेंटिटी प्रोवाइडर

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

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

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

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

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

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

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

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

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

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

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

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

  • Firebase Authentication SDKs

    'Firebase से पुष्टि करना' में, Identity Toolkit के REST API से मिलने वाली सुविधाओं को क्लाइंट SDK टूल में पैकेज किया गया है. ये SDK टूल, Android, iOS, और JavaScript के लिए उपलब्ध हैं. एसडीके का इस्तेमाल करके, उपयोगकर्ताओं को साइन इन और साइन अप कराया जा सकता है. साथ ही, उपयोगकर्ता की प्रोफ़ाइल की जानकारी ऐक्सेस की जा सकती है. इसके अलावा, खातों को लिंक, अपडेट, और मिटाया जा सकता है. साथ ही, पासवर्ड रीसेट किए जा सकते हैं. इसके लिए, क्लाइंट एसडीके का इस्तेमाल किया जा सकता है. इससे आपको 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 फ़ाइल डाउनलोड हो जाएगी. अगले चरण में, SDK टूल को शुरू करने के लिए आपको इसकी ज़रूरत पड़ेगी.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    FirebaseUI, मटीरियल डिज़ाइन लाइट स्टाइल का इस्तेमाल करता है. इससे मटीरियल डिज़ाइन ऐनिमेशन डाइनैमिक तौर पर जुड़ते हैं.

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

  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 वेब एपीआई का संदर्भ देखें.

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

  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 सर्वर एसडीके का इस्तेमाल करके, उस टोकन की पुष्टि करनी होगी. साथ ही, सेशन कुकी की जांच करनी होगी, जिसे आपके बैकएंड फ़्रेमवर्क ने पूरा किया है. इससे सीएसआरएफ़ हमलों को सफल होने से रोकने में मदद मिलेगी. इसकी वजह यह है कि 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 प्लगिन, google-services.json फ़ाइल का इस्तेमाल करके आपके ऐप्लिकेशन को Firebase के साथ काम करने के लिए कॉन्फ़िगर करता है.

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

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