आप अपने उपयोगकर्ताओं को उनके ईमेल पते और पासवर्ड का उपयोग करके Firebase Authentication के साथ प्रमाणित करने और अपने ऐप के पासवर्ड-आधारित खातों को प्रबंधित करने के लिए का उपयोग कर सकते हैं.
शुरू करने से पहले
Firebase की डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.
- Xcode में, अपने ऐप्लिकेशन का प्रोजेक्ट खोलें. इसके बाद, फ़ाइल > पैकेज जोड़ें पर जाएं.
- प्रॉम्प्ट मिलने पर, Firebase Apple प्लैटफ़ॉर्म SDK टूल का रिपॉज़िटरी जोड़ें:
- Firebase Authentication लाइब्रेरी चुनें.
- अपने टारगेट की बिल्ड सेटिंग के Other Linker Flags सेक्शन में,
-ObjCफ़्लैग जोड़ें. - इसके बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी से जुड़ी समस्या को हल करना और उन्हें डाउनलोड करना शुरू कर देगा.
https://github.com/firebase/firebase-ios-sdk.git
इसके बाद, कॉन्फ़िगरेशन के कुछ चरण पूरे करें:
- अगर आपने अब तक अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल से ऐसा करें.
-
अपने Firebase प्रोजेक्ट के लिए, ईमेल/पासवर्ड को साइन-इन करने की सुविधा देने वाले प्लैटफ़ॉर्म के तौर पर चालू करें:
- Firebase कंसोल में, सुरक्षा > पुष्टि करना पर जाएं.
- साइन-इन करने का तरीका टैब में, ईमेल/पासवर्ड को साइन-इन करने की सुविधा देने वाले प्लैटफ़ॉर्म के तौर पर चालू करें.
- सेव करें पर क्लिक करें.
पासवर्ड-आधारित खाता बनाना
पासवर्ड की मदद से नया उपयोगकर्ता खाता बनाने के लिए, अपने ऐप्लिकेशन की साइन-इन गतिविधि में यह तरीका अपनाएं:
- अपने
UIApplicationDelegateमेंFirebaseCoreमॉड्यूल इंपोर्ट करें. साथ ही, Firebase के उन अन्य मॉड्यूल को भी इंपोर्ट करें जिनका इस्तेमाल आपका ऐप्लिकेशन डेलिगेट करता है. उदाहरण के लिए, Cloud Firestore और Authentication का इस्तेमाल करने के लिए:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- अपने ऐप्लिकेशन डेलिगेट के
application(_:didFinishLaunchingWithOptions:)तरीके में,FirebaseAppशेयर किया गया इंस्टेंस कॉन्फ़िगर करें:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- अगर SwiftUI का इस्तेमाल किया जा रहा है, तो आपको एक ऐप्लिकेशन डेलिगेट बनाना होगा और उसे
अपने
Appस्ट्रक्चर सेUIApplicationDelegateAdaptorयाNSApplicationDelegateAdaptorकी मदद से जोड़ना होगा. आपको ऐप्लिकेशन डेलिगेट स्विज़लिंग भी बंद करनी होगी. ज़्यादा जानकारी के लिए, SwiftUI के निर्देश देखें.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- जब कोई नया उपयोगकर्ता, आपके ऐप्लिकेशन के साइन-अप फ़ॉर्म का इस्तेमाल करके साइन अप करता है, तो नए खाते की पुष्टि करने के उन सभी चरणों को पूरा करें जिनकी ज़रूरत आपके ऐप्लिकेशन को होती है. जैसे, यह पुष्टि करना कि नए खाते का पासवर्ड सही तरीके से टाइप किया गया है और वह आपकी जटिलता से जुड़ी ज़रूरी शर्तों को पूरा करता है.
- `
createUser` में नए उपयोगकर्ता का ईमेल पता और पासवर्ड डालकर, एक नया खाता बनाएं.अगर नया खाता सफलतापूर्वक बन जाता है, तो उपयोगकर्ता साइन इन हो जाता है. साथ ही, आपको कॉलबैक का तरीका में पास किए गए नतीजे के ऑब्जेक्ट से, उपयोगकर्ता के खाते में मौजूद डेटा मिल सकता है.Swift
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in // ... }
Objective-C
[[FIRAuth auth] createUserWithEmail:email password:password completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
ईमेल पते और पासवर्ड की मदद से किसी उपयोगकर्ता को साइन इन करना
पासवर्ड की मदद से किसी उपयोगकर्ता को साइन इन करने का तरीका, नया खाता बनाने के तरीके जैसा ही होता है. अपने ऐप्लिकेशन की साइन-इन गतिविधि में, यह तरीका अपनाएं:
- अपने
UIApplicationDelegateमेंFirebaseCoreमॉड्यूल इंपोर्ट करें. साथ ही, Firebase के उन अन्य मॉड्यूल को भी इंपोर्ट करें जिनका इस्तेमाल आपका ऐप्लिकेशन डेलिगेट करता है. उदाहरण के लिए, Cloud Firestore और Authentication का इस्तेमाल करने के लिए:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- अपने ऐप्लिकेशन डेलिगेट के
application(_:didFinishLaunchingWithOptions:)तरीके में,FirebaseAppशेयर किया गया इंस्टेंस कॉन्फ़िगर करें:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- अगर SwiftUI का इस्तेमाल किया जा रहा है, तो आपको एक ऐप्लिकेशन डेलिगेट बनाना होगा और उसे
अपने
Appस्ट्रक्चर सेUIApplicationDelegateAdaptorयाNSApplicationDelegateAdaptorकी मदद से जोड़ना होगा. आपको ऐप्लिकेशन डेलिगेट स्विज़लिंग भी बंद करनी होगी. ज़्यादा जानकारी के लिए, SwiftUI के निर्देश देखें.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- जब कोई उपयोगकर्ता आपके ऐप्लिकेशन में साइन इन करता है, तो उपयोगकर्ता का ईमेल पता और
पासवर्ड
signInमें डालें.अगर उपयोगकर्ता सफलतापूर्वक साइन इन कर लेता है, तो आपको कॉलबैक तरीके में पास किए गए नतीजे के ऑब्जेक्ट से, उपयोगकर्ता के खाते का डेटा मिल सकता है.Swift
Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in guard let strongSelf = self else { return } // ... }
Objective-C
[[FIRAuth auth] signInWithEmail:self->_emailField.text password:self->_passwordField.text completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
सुझाव: पासवर्ड नीति सेट करना
पासवर्ड की जटिलता से जुड़ी ज़रूरी शर्तें लागू करके, खाते की सुरक्षा को बेहतर बनाया जा सकता है.
अपने प्रोजेक्ट के लिए पासवर्ड नीति कॉन्फ़िगर करने के लिए, पासवर्ड नीति सेक्शन खोलें, जो सुरक्षा > पुष्टि करना > सेटिंग टैब में है Firebase कंसोल:
Firebase Authentication पासवर्ड नीतियों में, पासवर्ड से जुड़ी ये ज़रूरी शर्तें लागू की जा सकती हैं:
लोअरकेस वर्ण ज़रूरी है
अपरकेस वर्ण ज़रूरी है
संख्या वाला वर्ण ज़रूरी है
बिना अक्षर और अंक वाला वर्ण ज़रूरी है
बिना अक्षर और अंक वाले वर्ण की ज़रूरी शर्त को ये वर्ण पूरा करते हैं:
^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~पासवर्ड की कम से कम लंबाई (6 से 30 वर्ण; डिफ़ॉल्ट रूप से 6)
पासवर्ड की ज़्यादा से ज़्यादा लंबाई (ज़्यादा से ज़्यादा 4096 वर्ण)
पासवर्ड नीति को दो मोड में लागू किया जा सकता है:
ज़रूरी है: जब तक उपयोगकर्ता ऐसा पासवर्ड अपडेट नहीं करता जो आपकी नीति के मुताबिक हो, तब तक साइन अप करने की कोशिशें नाकाम होती रहेंगी.
सूचना दें: उपयोगकर्ताओं को, नीति के मुताबिक न होने वाले पासवर्ड से साइन अप करने की अनुमति दी जाती है. इस मोड का इस्तेमाल करते समय, आपको यह देखना चाहिए कि उपयोगकर्ता का पासवर्ड, क्लाइंट साइड पर नीति के मुताबिक है या नहीं. अगर पासवर्ड नीति के मुताबिक नहीं है, तो उपयोगकर्ता को किसी तरह से अपना पासवर्ड अपडेट करने के लिए कहा जाना चाहिए.
नए उपयोगकर्ताओं को हमेशा ऐसा पासवर्ड चुनना होगा जो आपकी नीति के मुताबिक हो.
अगर आपके पास सक्रिय उपयोगकर्ता हैं, तो हमारा सुझाव है कि साइन इन करने पर, अपग्रेड करने के लिए मजबूर करने वाली सेटिंग को चालू न करें. ऐसा तब तक न करें, जब तक आपका इरादा उन उपयोगकर्ताओं के ऐक्सेस को ब्लॉक करने का न हो जिनके पासवर्ड आपकी नीति के मुताबिक नहीं हैं. इसके बजाय, सूचना देने वाले मोड का इस्तेमाल करें. इससे उपयोगकर्ताओं को अपने मौजूदा पासवर्ड से साइन इन करने की अनुमति मिलती है. साथ ही, उन्हें यह भी बताया जाता है कि उनके पासवर्ड में किन ज़रूरी शर्तों का पालन नहीं किया गया है.
सुझाव: ईमेल की गिनती से सुरक्षा की सुविधा चालू करना
कुछ Firebase Authentication तरीके जिनमें ईमेल पते को पैरामीटर के तौर पर लिया जाता है, खास गड़बड़ियां दिखाते हैं. ऐसा तब होता है, जब ईमेल पता रजिस्टर होना चाहिए, लेकिन रजिस्टर नहीं होता. उदाहरण के लिए, ईमेल पते और पासवर्ड की मदद से साइन इन करते समय. इसके अलावा, ऐसा तब भी होता है, जब ईमेल पता इस्तेमाल नहीं किया जाना चाहिए, लेकिन रजिस्टर होता है. उदाहरण के लिए, किसी उपयोगकर्ता का ईमेल पता बदलते समय. इससे उपयोगकर्ताओं को खास समाधान सुझाने में मदद मिल सकती है. हालांकि, इसका गलत इस्तेमाल करके, धोखाधड़ी करने वाले लोग आपके उपयोगकर्ताओं के रजिस्टर किए गए ईमेल पतों का पता लगा सकते हैं.
इस जोखिम को कम करने के लिए, हमारा सुझाव है कि आप ईमेल की गिनती से सुरक्षा की सुविधा चालू करें
Google Cloud gcloud टूल का इस्तेमाल करके, अपने प्रोजेक्ट के लिए. ध्यान दें कि इस
सुविधा को चालू करने से, Firebase Authentication's की गड़बड़ी की रिपोर्टिंग के तरीके में बदलाव होता है. इसलिए, पक्का करें कि आपका ऐप्लिकेशन
ज़्यादा खास गड़बड़ियों पर निर्भर न हो.
अगले चरण
जब कोई उपयोगकर्ता पहली बार साइन इन करता है, तो एक नया उपयोगकर्ता खाता बनता है और उसे क्रेडेंशियल से लिंक किया जाता है. क्रेडेंशियल का मतलब है, उपयोगकर्ता नाम और पासवर्ड, फ़ोन नंबर या पुष्टि करने की सुविधा देने वाले प्लैटफ़ॉर्म की जानकारी. उपयोगकर्ता ने जिस जानकारी की मदद से साइन इन किया है, उसे क्रेडेंशियल कहा जाता है. यह नया खाता, आपके Firebase प्रोजेक्ट के हिस्से के तौर पर सेव किया जाता है. इसका इस्तेमाल, आपके प्रोजेक्ट के हर ऐप्लिकेशन में किसी उपयोगकर्ता की पहचान करने के लिए किया जा सकता है. भले ही, उपयोगकर्ता किसी भी तरीके से साइन इन करे.
-
अपने ऐप्लिकेशन में, उपयोगकर्ता की बुनियादी प्रोफ़ाइल की जानकारी
Userऑब्जेक्ट से पाई जा सकती है. उपयोगकर्ताओं को मैनेज करना लेख देखें. अपने Firebase Realtime Database और Cloud Storage सुरक्षा नियमों में, आप साइन-इन किए हुए उपयोगकर्ता का यूनीक उपयोगकर्ता आईडी
authवैरिएबल से पा सकते हैं. इसका इस्तेमाल, यह कंट्रोल करने के लिए किया जा सकता है कि कोई उपयोगकर्ता किस डेटा को ऐक्सेस कर सकता है.
किसी उपयोगकर्ता को साइन आउट करने के लिए,
signOut: को कॉल करें.
Swift
let firebaseAuth = Auth.auth() do { try firebaseAuth.signOut() } catch let signOutError as NSError { print("Error signing out: %@", signOutError) }
Objective-C
NSError *signOutError; BOOL status = [[FIRAuth auth] signOut:&signOutError]; if (!status) { NSLog(@"Error signing out: %@", signOutError); return; }
पुष्टि करने से जुड़ी सभी गड़बड़ियों के लिए, गड़बड़ी मैनेज करने का कोड भी जोड़ा जा सकता है. गड़बड़ियां मैनेज करना लेख देखें.