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

Firebase Authentication का इस्तेमाल करके, आप अपने उपयोगकर्ताओं को Firebase अपने ईमेल पते और पासवर्ड का इस्तेमाल करके और आपके ऐप्लिकेशन के पासवर्ड वाले खाते.

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

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

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

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

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

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

ध्यान दें कि 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();