कस्टम प्रमाणीकरण प्रणाली और यूनिटी का उपयोग करके फायरबेस से प्रमाणित करें

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

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

  1. इससे पहले कि आप फायरबेस प्रमाणीकरण का उपयोग कर सकें, आपको यह करना होगा:

    • अपने यूनिटी प्रोजेक्ट को अपने फायरबेस प्रोजेक्ट के साथ पंजीकृत करें।
    • अपने यूनिटी प्रोजेक्ट में फायरबेस यूनिटी एसडीके (विशेष रूप से, FirebaseAuth.unitypackage ) जोड़ें।

    अपने यूनिटी प्रोजेक्ट में फायरबेस जोड़ें में इन प्रारंभिक सेटअप चरणों के लिए विस्तृत निर्देश प्राप्त करें।

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

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

FirebaseAuth क्लास सभी API कॉल के लिए प्रवेश द्वार है। इसे FirebaseAuth.DefaultInstance के माध्यम से एक्सेस किया जा सकता है।
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

अपने प्रमाणीकरण सर्वर से टोकन के साथ Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync पर कॉल करें।

  1. जब उपयोगकर्ता आपके ऐप में साइन इन करते हैं, तो उनके साइन-इन क्रेडेंशियल (उदाहरण के लिए, उनका उपयोगकर्ता नाम और पासवर्ड) आपके प्रमाणीकरण सर्वर पर भेजें। आपका सर्वर क्रेडेंशियल्स की जांच करता है और यदि वे मान्य हैं तो एक कस्टम टोकन लौटाता है।
  2. अपने प्रमाणीकरण सर्वर से कस्टम टोकन प्राप्त करने के बाद, उपयोगकर्ता में साइन इन करने के लिए इसे Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync पर पास करें:
    auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCustomTokenAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCustomTokenAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.AuthResult result = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          result.User.DisplayName, result.User.UserId);
    });
    

अगले कदम

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

  • अपने ऐप्स में, आप उपयोगकर्ता की मूल प्रोफ़ाइल जानकारी Firebase.Auth.FirebaseUser ऑब्जेक्ट से प्राप्त कर सकते हैं:

    Firebase.Auth.FirebaseUser user = auth.CurrentUser;
    if (user != null) {
      string name = user.DisplayName;
      string email = user.Email;
      System.Uri photo_url = user.PhotoUrl;
      // The user's Id, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server, if you
      // have one; use User.TokenAsync() instead.
      string uid = user.UserId;
    }
    
  • अपने फायरबेस रीयलटाइम डेटाबेस और क्लाउड स्टोरेज सुरक्षा नियमों में, आप साइन-इन किए गए उपयोगकर्ता की अद्वितीय उपयोगकर्ता आईडी को auth वेरिएबल से प्राप्त कर सकते हैं, और इसका उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि उपयोगकर्ता किस डेटा तक पहुंच सकता है।

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

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

auth.SignOut();