Swift में प्रमाणीकरण और प्राधिकरण: LocalAuthentication, Firebase Auth, Keychain

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift (iOS/macOS) में प्रमाणीकरण और प्राधिकरण: उपकरणों और पुस्तकालयों का अवलोकन



आधुनिक iOS/macOS-विकास में, सुरक्षा और पहुँच प्रबंधन अत्यंत महत्वपूर्ण पहलू हैं। Swift स्थानीय प्रमाणीकरण के लिए अंतर्निहित फ्रेमवर्क और क्लाउड सेवाओं के साथ एकीकरण दोनों प्रदान करता है। इस लेख में, हम उपयोगकर्ता लॉगिन, पंजीकरण और अधिकारों की जाँच को लागू करने के लिए मुख्य उपकरणों और पुस्तकालयों पर चर्चा करेंगे।



1. LocalAuthentication — Face ID / Touch ID / Apple Watch



LocalAuthentication फ्रेमवर्क उपयोगकर्ता को बायोमेट्रिक्स या डिवाइस पासवर्ड के माध्यम से प्रमाणित करने की अनुमति देता है। यह iOS और macOS पर काम करता है।



मुख्य क्षमताएँ:

  • बायोमेट्रिक्स (Face ID, Touch ID) की उपलब्धता की जाँच
  • संदर्भ के साथ प्रमाणीकरण (LAContext)
  • बैकअप विकल्प के रूप में डिवाइस कोड का उपयोग


कोड उदाहरण:



import LocalAuthentication

func authenticateUser(completion: @escaping (Bool, Error?) -> Void) { let context = LAContext() var error: NSError?

// जाँचें कि बायोमेट्रिक्स उपलब्ध है या नहीं guard context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) else { completion(false, error) return }

// प्रमाणीकरण शुरू करें context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "डेटा तक पहुँचने के लिए अपनी पहचान सत्यापित करें") { success, authError in DispatchQueue.main.async { completion(success, authError) } }}


2. Firebase Authentication — क्लाउड प्रमाणीकरण



Firebase Auth एक शक्तिशाली पुस्तकालय है जो ईमेल/पासवर्ड, Google, Apple, GitHub और अन्य प्रदाताओं के माध्यम से लॉगिन का समर्थन करता है। यह सर्वर अनुप्रयोगों के लिए आदर्श है।



Swift Package Manager के माध्यम से स्थापना:

// Package.swift में जोड़ें:// .package(url: "https://github.com/firebase/firebase-ios-sdk.git", from: "10.0.0")// target: "YourAppTarget", dependencies: ["FirebaseAuth"]


नए उपयोगकर्ता का पंजीकरण:



import FirebaseAuth

func signUp(email: String, password: String) { Auth.auth().createUser(withEmail: email, password: password) { authResult, error in if let error = error { print("पंजीकरण त्रुटि: \\(error.localizedDescription)") return } print("उपयोगकर्ता पंजीकृत: \\(authResult?.user.uid ?? "")") }}


मौजूदा उपयोगकर्ता का लॉगिन:



func signIn(email: String, password: String) {    Auth.auth().signIn(withEmail: email, password: password) { authResult, error in        if let error = error {            print("लॉगिन त्रुटि: \\(error.localizedDescription)")            return        }        print("लॉगिन सफल: \\(authResult?.user.email ?? "")")    }}


3. Keychain Services — टोकन का सुरक्षित भंडारण



JWT टोकन, पासवर्ड या कुंजियों को सहेजने के लिए Keychain का उपयोग करें। यह iOS/macOS का मूल तंत्र है।



सहेजने और पढ़ने का उदाहरण:



import Security

func saveToKeychain(key: String, data: Data) -> Bool { let query: [String: Any] = [ kSecClass as String: kSecClassGenericPassword, kSecAttrAccount as String: key, kSecValueData as String: data ] SecItemDelete(query as CFDictionary) let status = SecItemAdd(query as CFDictionary, nil) return status == errSecSuccess}

func readFromKeychain(key: String) -> Data? { let query: [String: Any] = [ kSecClass as String: kSecClassGenericPassword, kSecAttrAccount as String: key, kSecReturnData as String: true, kSecMatchLimit as String: kSecMatchLimitOne ] var result: AnyObject? let status = SecItemCopyMatching(query as CFDictionary, &

अनुशंसाएँ