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