कस्टम प्रमाणीकरण प्रणाली का उपयोग करके जावास्क्रिप्ट में फायरबेस के साथ प्रमाणित करें

जब कोई उपयोगकर्ता सफलतापूर्वक साइन इन करता है तो कस्टम हस्ताक्षरित टोकन का उत्पादन करने के लिए आप अपने प्रमाणीकरण सर्वर को संशोधित करके फायरबेस प्रमाणीकरण को कस्टम प्रमाणीकरण प्रणाली के साथ एकीकृत कर सकते हैं। आपका ऐप इस टोकन को प्राप्त करता है और फायरबेस के साथ प्रमाणित करने के लिए इसका उपयोग करता है।

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

  1. अपने जावास्क्रिप्ट प्रोजेक्ट में फायरबेस जोड़ें
  2. अपने प्रोजेक्ट की सर्वर कुंजियाँ प्राप्त करें:
    1. अपने प्रोजेक्ट की सेटिंग में सेवा खाता पृष्ठ पर जाएँ।
    2. सेवा खाता पृष्ठ के फायरबेस एडमिन एसडीके अनुभाग के नीचे नई निजी कुंजी जेनरेट करें पर क्लिक करें।
    3. नए सेवा खाते की सार्वजनिक/निजी कुंजी जोड़ी स्वचालित रूप से आपके कंप्यूटर पर सहेजी जाती है। इस फ़ाइल को अपने प्रमाणीकरण सर्वर पर कॉपी करें।

फायरबेस से प्रमाणित करें

  1. जब उपयोगकर्ता आपके ऐप में साइन इन करते हैं, तो उनके साइन-इन क्रेडेंशियल (उदाहरण के लिए, उनका उपयोगकर्ता नाम और पासवर्ड) आपके प्रमाणीकरण सर्वर पर भेजें। आपका सर्वर क्रेडेंशियल्स की जांच करता है और यदि वे मान्य हैं तो एक कस्टम टोकन लौटाता है।
  2. अपने प्रमाणीकरण सर्वर से कस्टम टोकन प्राप्त करने के बाद, उपयोगकर्ता में साइन इन करने के लिए इसे signInWithCustomToken पर पास करें:

    Web modular API

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

    Web namespaced API

    firebase.auth().signInWithCustomToken(token)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });

अगले कदम

किसी उपयोगकर्ता द्वारा पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बनाया जाता है और क्रेडेंशियल्स से लिंक किया जाता है - यानी, उपयोगकर्ता नाम और पासवर्ड, फोन नंबर, या ऑथ प्रदाता जानकारी - जिस उपयोगकर्ता के साथ साइन इन किया जाता है। यह नया खाता आपके फायरबेस प्रोजेक्ट के हिस्से के रूप में संग्रहीत है, और इसका उपयोग आपके प्रोजेक्ट के प्रत्येक ऐप में उपयोगकर्ता की पहचान करने के लिए किया जा सकता है, भले ही उपयोगकर्ता कैसे भी साइन इन करता हो।

  • आपके ऐप्स में, आपके उपयोगकर्ता की प्रामाणिक स्थिति जानने का अनुशंसित तरीका Auth ऑब्जेक्ट पर एक पर्यवेक्षक सेट करना है। फिर आप User ऑब्जेक्ट से उपयोगकर्ता की मूल प्रोफ़ाइल जानकारी प्राप्त कर सकते हैं। उपयोगकर्ता प्रबंधित करें देखें.

  • अपने फायरबेस रीयलटाइम डेटाबेस और क्लाउड स्टोरेज सुरक्षा नियमों में, आप साइन-इन किए गए उपयोगकर्ता की अद्वितीय उपयोगकर्ता आईडी को auth वेरिएबल से प्राप्त कर सकते हैं, और इसका उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि उपयोगकर्ता किस डेटा तक पहुंच सकता है।

आप किसी मौजूदा उपयोगकर्ता खाते से प्रमाणीकरण प्रदाता क्रेडेंशियल्स को लिंक करके उपयोगकर्ताओं को एकाधिक प्रमाणीकरण प्रदाताओं का उपयोग करके अपने ऐप में साइन इन करने की अनुमति दे सकते हैं।

किसी उपयोगकर्ता को साइन आउट करने के लिए, signOut पर कॉल करें:

Web modular API

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth).then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});

Web namespaced API

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});