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;
        // ...
      });
    यहां गड़बड़ियों का पता लगाया जा सकता है और उन्हें ठीक किया जा सकता है. गड़बड़ी के कोड की सूची देखने के लिए, Auth के रेफ़रंस दस्तावेज़ देखें.
  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. साइन इन करने वाले उपयोगकर्ता के AuthCredential ऑब्जेक्ट को link तरीके से पास करें:

    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 पर अपग्रेड किया है, तो Cloud Logging में is_anon के हिसाब से फ़िल्टर किया जा सकता है.

अगले चरण

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