Firebase Authentication का इस्तेमाल करके, अपने उपयोगकर्ताओं को ईमेल पते और पासवर्ड का इस्तेमाल करके Firebase से पुष्टि करने की सुविधा दी जा सकती है. साथ ही, अपने ऐप्लिकेशन के पासवर्ड पर आधारित खातों को मैनेज किया जा सकता है.
शुरू करने से पहले
Firebase Authentication का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:
अपने Unity प्रोजेक्ट को रजिस्टर करें और Firebase का इस्तेमाल करने के लिए इसे कॉन्फ़िगर करें.
अगर आपके Unity प्रोजेक्ट में पहले से ही Firebase का इस्तेमाल किया जा रहा है, तो यह Firebase के लिए पहले से ही रजिस्टर और कॉन्फ़िगर किया गया है.
अगर आपके पास Unity प्रोजेक्ट नहीं है, तो सैंपल ऐप्लिकेशन डाउनलोड करें.
अपने Unity प्रोजेक्ट में Firebase Unity SDK (खास तौर पर,
FirebaseAuth.unitypackage) जोड़ें.
ध्यान दें कि Firebase को अपने यूनिटी प्रोजेक्ट में जोड़ने के लिए, आपको Firebase कंसोल और खुले हुए यूनिटी प्रोजेक्ट, दोनों में टास्क पूरे करने होंगे. उदाहरण के लिए, आपको कंसोल से Firebase कॉन्फ़िगरेशन फ़ाइलें डाउनलोड करनी होंगी. इसके बाद, उन्हें अपने यूनिटी प्रोजेक्ट में ले जाना होगा.
Firebase.Auth.FirebaseAuth क्लास को ऐक्सेस करना
FirebaseAuth क्लास, सभी एपीआई कॉल के लिए गेटवे है.
इसे FirebaseAuth.DefaultInstance के ज़रिए ऐक्सेस किया जा सकता है.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
पासवर्ड वाला खाता बनाना
पासवर्ड की मदद से नया उपयोगकर्ता खाता बनाने के लिए, अपने ऐप्लिकेशन के साइन-इन कोड में यह तरीका अपनाएं:
- जब कोई नया उपयोगकर्ता, आपके ऐप्लिकेशन के साइन-अप फ़ॉर्म का इस्तेमाल करके साइन अप करता है, तो खाते की पुष्टि करने के उन सभी नए चरणों को पूरा करें जिनकी आपके ऐप्लिकेशन को ज़रूरत है. जैसे, यह पुष्टि करना कि नए खाते का पासवर्ड सही तरीके से टाइप किया गया है और वह पासवर्ड से जुड़ी आपकी ज़रूरी शर्तों को पूरा करता है.
- नए उपयोगकर्ता का ईमेल पता और पासवर्ड
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); });
किसी उपयोगकर्ता को ईमेल पते और पासवर्ड की मदद से साइन इन करना
पासवर्ड की मदद से किसी उपयोगकर्ता के साइन इन करने का तरीका, नया खाता बनाने के तरीके से मिलता-जुलता है. अपने ऐप्लिकेशन के साइन-इन फ़ंक्शन में, यह तरीका अपनाएं:
- जब कोई उपयोगकर्ता आपके ऐप्लिकेशन में साइन इन करता है, तो उपयोगकर्ता का ईमेल पता और पासवर्ड
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); });
- अन्य वर्कफ़्लो की तरह, क्रेडेंशियल बनाया जा सकता है और साइन इन किया जा सकता है:
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 के कुछ ऐसे तरीके हैं जिनमें ईमेल पतों को पैरामीटर के तौर पर इस्तेमाल किया जाता है. अगर ईमेल पता रजिस्टर नहीं किया गया है, जबकि उसे रजिस्टर किया जाना चाहिए (उदाहरण के लिए, ईमेल पते और पासवर्ड से साइन इन करते समय) या रजिस्टर किया गया है, जबकि उसे इस्तेमाल नहीं किया जाना चाहिए (उदाहरण के लिए, किसी उपयोगकर्ता का ईमेल पता बदलते समय), तो ये तरीके खास गड़बड़ियां दिखाते हैं. इससे उपयोगकर्ताओं को समस्या हल करने के तरीके सुझाने में मदद मिल सकती है. हालांकि, इसका गलत इस्तेमाल भी किया जा सकता है. इससे बैड ऐक्टर, आपके उपयोगकर्ताओं के रजिस्टर किए गए ईमेल पतों का पता लगा सकते हैं.
इस जोखिम को कम करने के लिए, हमारा सुझाव है कि आप यह पक्का करें कि आपके प्रोजेक्ट के लिए, ईमेल पते की गिनती को सुरक्षित रखने की सुविधा चालू हो. इस सेटिंग को Firebase कंसोल में जाकर देखा जा सकता है: सुरक्षा > पुष्टि > सेटिंग टैब पर जाएं. इसके बाद, उपयोगकर्ता की कार्रवाइयां पर क्लिक करें.
ध्यान दें कि इस सुविधा को चालू करने से, 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 में सुरक्षा के नियमों का इस्तेमाल करके, ये काम किए जा सकते हैं: साइन इन किए हुए उपयोगकर्ता का यूनीक User-ID,
authवैरिएबल से पाएं, और इसका इस्तेमाल करके यह कंट्रोल करें कि कोई उपयोगकर्ता किस डेटा को ऐक्सेस कर सकता है.
उपयोगकर्ताओं को पुष्टि करने वाले कई प्रोवाइडर का इस्तेमाल करके, आपके ऐप्लिकेशन में साइन इन करने की अनुमति दी जा सकती है. इसके लिए, पुष्टि करने वाले प्रोवाइडर के क्रेडेंशियल को किसी मौजूदा उपयोगकर्ता खाते से लिंक करें.
किसी उपयोगकर्ता को साइन आउट करने के लिए,
SignOut() को कॉल करें:
auth.SignOut();