JavaScript का इस्तेमाल करके, Firebase से पुष्टि करें

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

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

  1. अपने JavaScript प्रोजेक्ट में Firebase जोड़ें.
  2. अगर आपने अब तक अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल से ऐसा करें.
  3. बिना पहचान ज़ाहिर किए पुष्टि करने की सुविधा चालू करें:
    1. Firebase कंसोल में, Auth सेक्शन खोलें.
    2. साइन इन करने के तरीके पेज पर, बिना पहचान ज़ाहिर किए साइन इन करने का तरीका चालू करें.
    3. ज़रूरी नहीं है: अगर आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड किया है, तो अपने-आप क्लीन-अप होने की सुविधा चालू की जा सकती है. इस सेटिंग को चालू करने पर, 30 दिन से ज़्यादा पुराने गुमनाम खाते अपने-आप मिट जाएंगे. जिन प्रोजेक्ट में अपने-आप क्लीन-अप होने की सुविधा चालू है उनमें, बिना पहचान ज़ाहिर किए पुष्टि करने की सुविधा का इस्तेमाल करने पर, अब इस्तेमाल की सीमाओं या बिलिंग कोटा में गिनती नहीं की जाएगी. देखें कि अपने-आप क्लीन-अप करने की सुविधा चालू है या नहीं.

Firebase की मदद से, बिना पहचान ज़ाहिर किए पुष्टि करना

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

  1. signInAnonymously तरीके को कॉल करें:

    Web

    import { getAuth, signInAnonymously } from "firebase/auth";
    
    const auth = getAuth();
    signInAnonymously(auth)
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });

    Web

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });
    यहां गड़बड़ियों का पता लगाया जा सकता है और उन्हें ठीक किया जा सकता है. गड़बड़ी के कोड की सूची के लिए, पुष्टि करने से जुड़े रेफ़रंस दस्तावेज़ देखें.
  2. अगर signInAnonymously तरीका बिना किसी गड़बड़ी के पूरा हो जाता है, तो onAuthStateChanged में रजिस्टर किया गया ऑब्ज़र्वर ट्रिगर हो जाएगा और आपको User ऑब्जेक्ट से, बिना नाम वाले उपयोगकर्ता का खाता डेटा मिल सकता है:

    Web

    import { getAuth, onAuthStateChanged } from "firebase/auth";
    
    const auth = getAuth();
    onAuthStateChanged(auth, (user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/auth.user
        const uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

    Web

    firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/v8/firebase.User
        var uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

गुमनाम खाते को सामान्य खाते में बदलना

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

  1. जब उपयोगकर्ता साइन अप करता है, तो पुष्टि करने वाली सेवा देने वाली कंपनी के लिए, साइन-इन फ़्लो को पूरा करें. हालांकि, Auth.signInWith के किसी एक तरीके को कॉल करने तक ही सीमित रखें. उदाहरण के लिए, उपयोगकर्ता का Google आईडी टोकन, Facebook ऐक्सेस टोकन या ईमेल पता और पासवर्ड पाएं.
  2. पुष्टि करने वाली नई सेवा के लिए AuthCredential पाएं:

    Google साइन-इन

    Web

    import { GoogleAuthProvider } from "firebase/auth";
    
    const credential = GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);

    Web

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    Facebook Login

    Web

    import { FacebookAuthProvider } from "firebase/auth";
    
    const credential = FacebookAuthProvider.credential(
      response.authResponse.accessToken);

    Web

    var credential = firebase.auth.FacebookAuthProvider.credential(
      response.authResponse.accessToken);
    ईमेल-पासवर्ड से साइन-इन करना

    Web

    import { EmailAuthProvider } from "firebase/auth";
    
    const credential = EmailAuthProvider.credential(email, password);

    Web

    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
  3. साइन इन करने वाले उपयोगकर्ता के link तरीके के लिए, AuthCredential ऑब्जेक्ट को पास करें:

    Web

    import { getAuth, linkWithCredential } from "firebase/auth";
    
    const auth = getAuth();
    linkWithCredential(auth.currentUser, credential)
      .then((usercred) => {
        const user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

    Web

    auth.currentUser.linkWithCredential(credential)
      .then((usercred) => {
        var user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

अगर link को कॉल करने पर वह पूरा हो जाता है, तो उपयोगकर्ता का नया खाता, पहचान छिपाने वाले खाते का Firebase डेटा ऐक्सेस कर सकता है.

अपने-आप क्लीन-अप होना

अगर आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड किया है, तो Firebase कंसोल में जाकर, अपने-आप क्लीन-अप होने की सुविधा चालू की जा सकती है. इस सुविधा को चालू करने पर, Firebase को 30 दिन से ज़्यादा पुराने ऐसे खातों को अपने-आप मिटाने की अनुमति मिल जाती है जिनमें उपयोगकर्ता की पहचान से जुड़ी जानकारी नहीं होती. जिन प्रोजेक्ट में अपने-आप डेटा मिटाने की सुविधा चालू है उनमें, पहचान छिपाकर पुष्टि करने की सुविधा का इस्तेमाल करने पर, डेटा इस्तेमाल करने की सीमा या बिलिंग कोटा में कोई बदलाव नहीं होगा.

  • अपने-आप मिटाने की सुविधा चालू करने के बाद बनाए गए गुमनाम खाते, 30 दिनों के बाद कभी भी अपने-आप मिट सकते हैं.
  • अपने-आप मिटने की सुविधा चालू करने के 30 दिन बाद, मौजूदा गुमनाम खाते अपने-आप मिट जाएंगे.
  • अपने-आप खाता मिटाने की सुविधा बंद करने पर, मिटाए जाने के लिए शेड्यूल किए गए सभी खाते, मिटाए जाने के लिए शेड्यूल किए रहेंगे.
  • अगर किसी ऐसे खाते को "अपग्रेड" किया जाता है जिसकी पहचान ज़ाहिर नहीं की गई है, तो वह खाता अपने-आप नहीं मिटेगा. ऐसा तब होगा, जब उस खाते को साइन इन करने के किसी तरीके से लिंक किया गया हो.

अगर आपको यह सुविधा चालू करने से पहले यह देखना है कि कितने उपयोगकर्ताओं पर असर पड़ेगा और आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड कर लिया है, तो क्लाउड लॉगिंग में is_anon के हिसाब से फ़िल्टर किया जा सकता है.

अगले चरण

अब उपयोगकर्ता Firebase की मदद से पुष्टि कर सकते हैं. इसलिए, Firebase के नियमों का इस्तेमाल करके, अपने Firebase डेटाबेस में उनके डेटा के ऐक्सेस को कंट्रोल किया जा सकता है.