Apple प्लैटफ़ॉर्म पर पासवर्ड-आधारित खातों का इस्तेमाल करके Firebase से पुष्टि करें

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

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

Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.

  1. Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलने के लिए, फ़ाइल > पैकेज जोड़ना.
  2. जब कहा जाए, तब Firebase Apple प्लैटफ़ॉर्म SDK टूल का रिपॉज़िटरी जोड़ें:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Firebase Authentication लाइब्रेरी चुनें.
  5. अपने टारगेट की बिल्ड सेटिंग के अन्य लिंकर फ़्लैग सेक्शन में -ObjC फ़्लैग जोड़ें.
  6. यह काम पूरा होने पर, Xcode अपने-आप रिज़ॉल्व और डाउनलोड होना शुरू कर देगा पर निर्भर करता है.

इसके बाद, कॉन्फ़िगरेशन के कुछ चरण पूरे करें:

  1. अगर आपने अभी तक अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल.
  2. ईमेल/पासवर्ड से साइन इन करने की सुविधा चालू करना:
    1. Firebase कंसोल में, Auth सेक्शन खोलें.
    2. साइन इन करने का तरीका टैब पर, साइन इन करने के लिए ईमेल/पासवर्ड का तरीका चालू करें और सेव करें पर क्लिक करें.

पासवर्ड पर आधारित खाता बनाना

पासवर्ड का इस्तेमाल करके नया उपयोगकर्ता खाता बनाने के लिए, यहां दिया गया तरीका अपनाएं: आपके ऐप्लिकेशन की साइन-इन गतिविधि:

  1. अपने 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;
    // ...
          
  2. कॉन्फ़िगर करें FirebaseApp आपके ऐप्लिकेशन डेलिगेट के में शेयर किया गया इंस्टेंस application(_:didFinishLaunchingWithOptions:) तरीका:

    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];
  3. अगर SwiftUI का इस्तेमाल किया जा रहा है, तो आपको एक ऐप्लिकेशन डेलीगेट बनाना होगा और उसे UIApplicationDelegateAdaptor या NSApplicationDelegateAdaptor के ज़रिए अपने App स्ट्रक्चर से अटैच करना होगा. आपको ऐप्लिकेशन डेलीगेट स्विज़लिंग की सुविधा भी बंद करनी होगी. ज़्यादा जानकारी के लिए, SwiftUI के निर्देश देखें.

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. जब कोई नया उपयोगकर्ता आपके ऐप्लिकेशन के साइन-अप फ़ॉर्म का इस्तेमाल करके साइन अप करता है, तो खाते की पुष्टि करने के लिए, ऐप्लिकेशन के लिए ज़रूरी सभी नए चरणों को पूरा करें. जैसे, यह पुष्टि करना कि नए खाते का पासवर्ड सही तरीके से टाइप किया गया है और वह आपकी तय की गई ज़रूरी शर्तों के मुताबिक है.
  5. नए उपयोगकर्ता का ईमेल पता और पासवर्ड पास करके नया खाता बनाना 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) {
      // ...
    }];
    अगर नया खाता बन जाता है, तो उपयोगकर्ता साइन इन हो जाता है और आपको उस ऑब्जेक्ट से उपयोगकर्ता के खाते का डेटा ले सकता है जिसे नतीजे के तौर पर कॉलबैक का तरीका.

किसी उपयोगकर्ता को ईमेल पते और पासवर्ड से साइन इन कराना

पासवर्ड से उपयोगकर्ता साइन इन करने का तरीका, नया खाता बनाने के लिए. अपने ऐप्लिकेशन की साइन-इन गतिविधि में, ये काम करें:

  1. अपने 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;
    // ...
          
  2. कॉन्फ़िगर करें FirebaseApp आपके ऐप्लिकेशन डेलिगेट के में शेयर किया गया इंस्टेंस application(_:didFinishLaunchingWithOptions:) तरीका:

    स्विफ़्टयूआई

    // 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];
  3. अगर 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()
          }
        }
      }
    }
          
  4. जब कोई उपयोगकर्ता आपके ऐप्लिकेशन में साइन इन करता है, तो उपयोगकर्ता के ईमेल पते और पासवर्ड को 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 की गड़बड़ी की शिकायत करने के तरीके में बदलाव होता है: पक्का करें कि आपका ऐप्लिकेशन, ज़्यादा सटीक गड़बड़ियों पर निर्भर न हो.

अगले चरण

किसी उपयोगकर्ता के पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बना दिया जाता है और आपके खाते के क्रेडेंशियल मौजूद हैं, जैसे कि उपयोगकर्ता नाम और पासवर्ड, या पुष्टि करने वाली कंपनी की जानकारी—उपयोगकर्ता ने जिससे साइन इन किया है. इस नए खाते को आपके 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;
}

पुष्टि करने से जुड़ी सभी गड़बड़ियों के लिए, गड़बड़ी को हैंडल करने वाला कोड भी जोड़ा जा सकता है. गड़बड़ियां मैनेज करना देखें.