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. अपने टारगेट की बिल्ड सेटिंग के Other Linker Flags सेक्शन में, -ObjC फ़्लैग जोड़ें.
  6. इसके बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी से जुड़ी समस्याओं को हल करना और उन्हें डाउनलोड करना शुरू कर देगा.

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

  1. अगर आपने अपने ऐप्लिकेशन को अब तक Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल से कनेक्ट करें.
  2. ईमेल/पासवर्ड से साइन-इन करने की सुविधा चालू करें:
    1. Firebase 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. अपने ऐप्लिकेशन के डेलिगेट के 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];
  3. अगर 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()
          }
        }
      }
    }
          
  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) {
      // ...
    }];
    अगर नया खाता बन जाता है, तो उपयोगकर्ता साइन इन हो जाता है. इसके बाद, आपको कॉलबैक तरीके में पास किए गए नतीजे वाले ऑब्जेक्ट से, उपयोगकर्ता के खाते का डेटा मिल सकता है.
Firebase

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

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

  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. अपने ऐप्लिकेशन के डेलिगेट के 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];
  3. अगर 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()
          }
        }
      }
    }
          
  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 कंसोल के Authentication सेटिंग पेज पर मौजूद है:

Authentication सेटिंग

Firebase Authentication पासवर्ड की नीतियों में, पासवर्ड से जुड़ी ये ज़रूरी शर्तें लागू की जा सकती हैं:

  • लोअरकेस वर्ण ज़रूरी है

  • अपरकेस वर्ण ज़रूरी है

  • संख्या वाला वर्ण ज़रूरी है

  • बिना अक्षर और अंक वाला वर्ण ज़रूरी है

    बिना अक्षर और अंक वाले वर्ण की ज़रूरी शर्त को पूरा करने के लिए, इन वर्णों का इस्तेमाल किया जा सकता है: ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~

  • पासवर्ड की कम से कम लंबाई (6 से 30 वर्ण; डिफ़ॉल्ट रूप से 6)

  • पासवर्ड की ज़्यादा से ज़्यादा लंबाई (ज़्यादा से ज़्यादा 4,096 वर्ण)

पासवर्ड की नीति को दो मोड में लागू किया जा सकता है:

  • ज़रूरी है: जब तक उपयोगकर्ता ऐसा पासवर्ड अपडेट नहीं करता जो आपकी नीति के मुताबिक हो, तब तक साइन अप करने की कोशिशें नाकाम होती रहेंगी.

  • सूचना दें: उपयोगकर्ताओं को, नीति के मुताबिक न होने वाले पासवर्ड से साइन अप करने की अनुमति होती है. इस मोड का इस्तेमाल करते समय, आपको यह देखना चाहिए कि उपयोगकर्ता का पासवर्ड, क्लाइंट साइड पर नीति के मुताबिक है या नहीं. अगर पासवर्ड नीति के मुताबिक नहीं है, तो उपयोगकर्ता को किसी भी तरीके से अपना पासवर्ड अपडेट करने के लिए कहा जाना चाहिए.

नए उपयोगकर्ताओं को हमेशा ऐसा पासवर्ड चुनना होता है जो आपकी नीति के मुताबिक हो.

अगर आपके पास सक्रिय उपयोगकर्ता हैं, तो हमारा सुझाव है कि साइन इन करने पर, अपग्रेड करने के लिए मजबूर करने की सुविधा चालू न करें. ऐसा तब तक न करें, जब तक आपका इरादा उन उपयोगकर्ताओं के ऐक्सेस को ब्लॉक करने का न हो जिनके पासवर्ड आपकी नीति के मुताबिक नहीं हैं. इसके बजाय, सूचना देने वाले मोड का इस्तेमाल करें. इससे उपयोगकर्ताओं को अपने मौजूदा पासवर्ड से साइन इन करने की अनुमति मिलती है. साथ ही, उन्हें यह भी बताया जाता है कि उनके पासवर्ड में किन ज़रूरी शर्तों को पूरा नहीं किया गया है.

सुझाव: ईमेल की गिनती से सुरक्षा की सुविधा चालू करना

कुछ 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;
}

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