आप अपने उपयोगकर्ताओं को उनके ईमेल पते और पासवर्ड का उपयोग करके फायरबेस से प्रमाणित करने और अपने ऐप के पासवर्ड-आधारित खातों को प्रबंधित करने के लिए फायरबेस प्रमाणीकरण का उपयोग कर सकते हैं।
शुरू करने से पहले
फायरबेस निर्भरता को स्थापित और प्रबंधित करने के लिए स्विफ्ट पैकेज मैनेजर का उपयोग करें।
- Xcode में, अपना ऐप प्रोजेक्ट खुला होने पर, फ़ाइल > पैकेज जोड़ें पर नेविगेट करें।
- संकेत मिलने पर, Firebase Apple प्लेटफ़ॉर्म SDK रिपॉजिटरी जोड़ें:
- फायरबेस प्रमाणीकरण लाइब्रेरी चुनें।
- समाप्त होने पर, Xcode स्वचालित रूप से पृष्ठभूमि में आपकी निर्भरता को हल करना और डाउनलोड करना शुरू कर देगा।
https://github.com/firebase/firebase-ios-sdk
इसके बाद, कुछ कॉन्फ़िगरेशन चरण निष्पादित करें:
- यदि आपने अभी तक अपने ऐप को अपने फायरबेस प्रोजेक्ट से कनेक्ट नहीं किया है, तो फायरबेस कंसोल से ऐसा करें।
- ईमेल/पासवर्ड साइन-इन सक्षम करें:
- फायरबेस कंसोल में, ऑथ सेक्शन खोलें।
- साइन इन विधि टैब पर, ईमेल/पासवर्ड साइन-इन विधि सक्षम करें और सहेजें पर क्लिक करें।
एक पासवर्ड-आधारित खाता बनाएं
पासवर्ड के साथ एक नया उपयोगकर्ता खाता बनाने के लिए, अपने ऐप की साइन-इन गतिविधि में निम्नलिखित चरणों को पूरा करें:
- अपने
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];
- यदि आप स्विफ्टयूआई का उपयोग कर रहे हैं, तो आपको एक एप्लिकेशन प्रतिनिधि बनाना होगा और इसे
UIApplicationDelegateAdaptor
याNSApplicationDelegateAdaptor
के माध्यम से अपनेApp
स्ट्रक्चर में संलग्न करना होगा। आपको ऐप डेलीगेट स्विज़लिंग को भी अक्षम करना होगा। अधिक जानकारी के लिए स्विफ्टयूआई निर्देश देखें।स्विफ्टयूआई
@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];
- यदि आप स्विफ्टयूआई का उपयोग कर रहे हैं, तो आपको एक एप्लिकेशन प्रतिनिधि बनाना होगा और इसे
UIApplicationDelegateAdaptor
याNSApplicationDelegateAdaptor
के माध्यम से अपनेApp
स्ट्रक्चर में संलग्न करना होगा। आपको ऐप डेलीगेट स्विज़लिंग को भी अक्षम करना होगा। अधिक जानकारी के लिए स्विफ्टयूआई निर्देश देखें।स्विफ्टयूआई
@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; }
आप प्रमाणीकरण त्रुटियों की पूरी श्रृंखला के लिए त्रुटि प्रबंधन कोड भी जोड़ना चाह सकते हैं। त्रुटियाँ संभालें देखें।