Unity के लिए पासवर्ड-आधारित खातों का इस्तेमाल करके Firebase से पुष्टि करें

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

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

Firebase Authentication का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:

  • अपना Unity प्रोजेक्ट रजिस्टर करें और उसे Firebase का इस्तेमाल करने के लिए कॉन्फ़िगर करें.

    • अगर आपका Unity प्रोजेक्ट पहले से ही Firebase का इस्तेमाल करता है, तो इसका मतलब है कि वह Firebase के लिए पहले से ही रजिस्टर और कॉन्फ़िगर है.

    • अगर आपके पास कोई Unity प्रोजेक्ट नहीं है, तो सैंपल ऐप्लिकेशन डाउनलोड किया जा सकता है.

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

ध्यान दें कि अपने Unity प्रोजेक्ट में Firebase जोड़ने के लिए, Firebase कंसोल और अपने खुले हुए Unity प्रोजेक्ट, दोनों में टास्क शामिल होते हैं. उदाहरण के लिए, कंसोल से Firebase कॉन्फ़िगरेशन फ़ाइलें डाउनलोड करके, उन्हें अपने Unity प्रोजेक्ट में ले जाना.

Firebase.Auth.FirebaseAuth क्लास को ऐक्सेस करना

FirebaseAuth क्लास, सभी एपीआई कॉल के लिए गेटवे है. इसे FirebaseAuth.DefaultInstance के ज़रिए ऐक्सेस किया जा सकता है.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

पासवर्ड पर आधारित खाता बनाना

पासवर्ड के साथ नया उपयोगकर्ता खाता बनाने के लिए, अपने ऐप्लिकेशन के साइन-इन कोड में यह तरीका अपनाएं:

  1. जब कोई नया उपयोगकर्ता आपके ऐप्लिकेशन के साइन-अप फ़ॉर्म का इस्तेमाल करके साइन अप करता है, तो खाते की पुष्टि करने के लिए, ऐप्लिकेशन में बताए गए सभी नए चरणों को पूरा करें. जैसे, यह पुष्टि करना कि नए खाते का पासवर्ड सही तरीके से टाइप किया गया है और वह आपके तय किए गए पासवर्ड के लिए तय की गई ज़रूरी शर्तों को पूरा करता है.
  2. नए उपयोगकर्ता का ईमेल पता और पासवर्ड FirebaseAuth.CreateUserWithEmailAndPassword को भेजकर, नया खाता बनाएं:
    auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception);
        return;
      }
    
      // Firebase user has been created.
      Firebase.Auth.AuthResult result = task.Result;
      Debug.LogFormat("Firebase user created successfully: {0} ({1})",
          result.User.DisplayName, result.User.UserId);
    });

ईमेल पते और पासवर्ड वाले उपयोगकर्ता खाते में साइन इन करें

पासवर्ड का इस्तेमाल करके किसी उपयोगकर्ता के तौर पर साइन इन करने का तरीका, नया खाता बनाने के तरीके से मिलता-जुलता है. अपने ऐप्लिकेशन के साइन-इन फ़ंक्शन में, यह तरीका अपनाएं:

  1. जब कोई उपयोगकर्ता आपके ऐप्लिकेशन में साइन इन करता है, तो उपयोगकर्ता के ईमेल पते और पासवर्ड को FirebaseAuth.SignInWithEmailAndPassword पर पास करें:
    auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithEmailAndPasswordAsync 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);
    });
  2. इसके अलावा, क्रेडेंशियल भी बनाए जा सकते हैं और अन्य वर्कफ़्लो की तरह साइन इन किया जा सकता है:
    Firebase.Auth.Credential credential =
        Firebase.Auth.EmailAuthProvider.GetCredential(email, password);
    auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync 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 Authentication पासवर्ड से जुड़ी नीतियां, पासवर्ड से जुड़ी इन ज़रूरी शर्तों के साथ काम करती हैं:

  • छोटे अक्षर का इस्तेमाल करना ज़रूरी है

  • अपरकेस वर्ण ज़रूरी है

  • अंकों की ज़रूरत है

  • अक्षर और अंक के अलावा कोई दूसरा वर्ण होना चाहिए

    नीचे दिए गए वर्ण, अक्षर और अंक के अलावा अन्य वर्णों की ज़रूरी शर्तें पूरी करते हैं: ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~

  • पासवर्ड की कम से कम लंबाई (6 से 30 वर्णों के बीच होनी चाहिए; डिफ़ॉल्ट रूप से 6 वर्ण)

  • पासवर्ड की ज़्यादा से ज़्यादा लंबाई (ज़्यादा से ज़्यादा 4,096 वर्ण)

पासवर्ड नीति लागू करने की सुविधा को दो मोड में चालू किया जा सकता है:

  • ज़रूरी है: साइन अप करने की कोशिशें तब तक फ़ेल हो जाती हैं, जब तक उपयोगकर्ता आपकी नीति का पालन करने वाले पासवर्ड को अपडेट नहीं करता.

  • सूचना दें: उपयोगकर्ताओं को नीतियों का पालन न करने वाले पासवर्ड से साइन अप करने की अनुमति है. इस मोड का इस्तेमाल करते समय, आपको यह देखना चाहिए कि उपयोगकर्ता का पासवर्ड, क्लाइंट साइड पर बनी नीति के मुताबिक है या नहीं. अगर ऐसा नहीं है, तो उपयोगकर्ता को पासवर्ड अपडेट करने के लिए कहें.

नए उपयोगकर्ताओं को हमेशा ऐसा पासवर्ड चुनना होता है जो आपकी नीति के मुताबिक हो.

अगर आपके पास सक्रिय उपयोगकर्ता हैं, तो हमारा सुझाव है कि आप साइन इन करने पर, ज़बरदस्ती अपग्रेड करने की सुविधा को तब तक चालू न करें, जब तक कि आपके पास उन उपयोगकर्ताओं का ऐक्सेस ब्लॉक करने का इरादा न हो जिनके पासवर्ड आपकी नीति के मुताबिक नहीं हैं. इसके बजाय, सूचना मोड का इस्तेमाल करें. इससे उपयोगकर्ता अपने मौजूदा पासवर्ड से साइन इन कर सकते हैं. साथ ही, उन्हें उन ज़रूरी शर्तों के बारे में जानकारी मिलती है जो उनके पासवर्ड में मौजूद नहीं हैं.

सुझाया गया: ईमेल गिनती सुरक्षा चालू करें

Firebase Authentication के कुछ ऐसे तरीके हैं जिनमें ईमेल पतों को पैरामीटर के तौर पर इस्तेमाल किया जाता है. अगर ईमेल पता रजिस्टर नहीं है, जबकि उसे रजिस्टर करना ज़रूरी है (उदाहरण के लिए, ईमेल पते और पासवर्ड से साइन इन करते समय), या ईमेल पता रजिस्टर है, जबकि उसे इस्तेमाल नहीं किया जाना चाहिए (उदाहरण के लिए, उपयोगकर्ता का ईमेल पता बदलते समय), तो ये तरीके कुछ खास गड़बड़ियां दिखाते हैं. यह सुविधा, उपयोगकर्ताओं को समस्या हल करने के सुझाव देने में मददगार हो सकती है. हालांकि, इसका गलत इस्तेमाल भी किया जा सकता है. जैसे, आपके उपयोगकर्ताओं के रजिस्टर किए गए ईमेल पते का पता लगाने के लिए.

इस जोखिम को कम करने के लिए, हमारा सुझाव है कि आप Google Cloud gcloud टूल का इस्तेमाल करके, अपने प्रोजेक्ट के लिए ईमेल की गिनती करने की सुरक्षा चालू करें. ध्यान दें कि इस सुविधा को चालू करने पर, Firebase Authentication की गड़बड़ी की शिकायत करने के तरीके में बदलाव होता है: पक्का करें कि आपका ऐप्लिकेशन, ज़्यादा खास गड़बड़ियों पर निर्भर न हो.

अगले चरण

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

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

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

auth.SignOut();