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

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

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

  1. अपने JavaScript प्रोजेक्ट में Firebase जोड़ें.
  2. अगर आपने अब तक अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल में जाकर ऐसा करें.
  3. पहचान छिपाकर पुष्टि करने की सुविधा चालू करें:
    1. Firebase console में, सुरक्षा > पुष्टि पर जाएं.
    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 से लॉगिन करें

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

अगले चरण

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