कस्टम ऑथेंटिकेशन सिस्टम और Unity का इस्तेमाल करके, Firebase की मदद से पुष्टि करें

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

वेब कंटेनर इंस्टॉल करने से पहले

  1. Firebase से पुष्टि करने की सुविधा का इस्तेमाल करने से पहले, आपको:

    • अपने Unity प्रोजेक्ट को Firebase प्रोजेक्ट के साथ रजिस्टर करें.
    • अपने Unity प्रोजेक्ट में Firebase Unity SDK (खास तौर पर, FirebaseAuth.unitypackage) जोड़ें.

    Firebase को अपने Unity प्रोजेक्ट में जोड़ने में, सेटअप के इन शुरुआती चरणों के बारे में ज़्यादा जानकारी पाएं.

  2. अपने प्रोजेक्ट की सर्वर कुंजियां पाएं:
    1. अपने प्रोजेक्ट की सेटिंग में, सेवा खाते पेज पर जाएं.
    2. सेवा खाते पेज के Firebase एडमिन SDK सेक्शन में सबसे नीचे, नई निजी कुंजी जनरेट करें पर क्लिक करें.
    3. नए सेवा खाते का सार्वजनिक/निजी कुंजी का जोड़ा, आपके कंप्यूटर पर अपने-आप सेव हो जाता है. इस फ़ाइल को अपने ऑथेंटिकेशन सर्वर पर कॉपी करें.

Firebase की मदद से पुष्टि करें

FirebaseAuth क्लास, सभी एपीआई कॉल के लिए गेटवे होती है. इसे 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 प्रोजेक्ट के हिस्से के तौर पर सेव किया जाता है. साथ ही, इसका इस्तेमाल आपके प्रोजेक्ट के हर ऐप्लिकेशन में किसी उपयोगकर्ता की पहचान करने के लिए किया जा सकता है. भले ही, उपयोगकर्ता ने किसी भी तरह से साइन इन किया हो.

  • अपने ऐप्लिकेशन में, 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;
    }
    
  • अपने Firebase रीयल टाइम डेटाबेस और Cloud Storage के सुरक्षा नियमों में, auth वैरिएबल से साइन-इन किए हुए उपयोगकर्ता का यूनीक यूज़र आईडी पाया जा सकता है और उसका इस्तेमाल करके यह कंट्रोल किया जा सकता है कि उपयोगकर्ता कौनसा डेटा ऐक्सेस कर सकता है.

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

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

auth.SignOut();