Apple प्लैटफ़ॉर्म पर कई ऐप्लिकेशन या एक्सटेंशन पर पुष्टि की स्थितियां शेयर करने के लिए, Keychain सेवाओं का इस्तेमाल करके, शेयर की गई कीचेन में पुष्टि करने की स्थिति और शेयर किए गए कीचेन का इस्तेमाल करने के लिए अपने ऐप्लिकेशन को कॉन्फ़िगर करें.
इससे उपयोगकर्ता ये काम कर सकते हैं:
- एक बार साइन इन करें और एक ही ऐक्सेस वाले सभी ऐप्लिकेशन में साइन इन करें ग्रुप.
- एक बार साइन आउट करें और एक ही ऐक्सेस वाले सभी ऐप्लिकेशन से साइन आउट हो जाएं ग्रुप.
ऐप्लिकेशन के बीच अनुमति की स्थिति शेयर करना
ऐप्लिकेशन के बीच अनुमति की स्थिति शेयर करने के लिए:
अपने ऐप्लिकेशन के लिए, ऐक्सेस ग्रुप सेट अप करें.
कीचेन ऐक्सेस ग्रुप या ऐप्लिकेशन ग्रुप में से किसी एक का इस्तेमाल किया जा सकता है. ऐप्लिकेशन के संग्रह में से Keychain आइटम का ऐक्सेस शेयर करना देखें देखें.
Keychain ऐक्सेस ग्रुप सेट अप करने के लिए, हर ऐप्लिकेशन के लिए यह तरीका अपनाएं:
- Xcode में, प्रोजेक्ट सेटिंग > मिलने वाली अनुमतियां.
- कीचेन साझाकरण सक्षम करें.
- कोई कीचेन ग्रुप आइडेंटिफ़ायर जोड़ें. उन सभी के लिए एक ही आइडेंटिफ़ायर का इस्तेमाल करें में है, जिसकी स्थिति शेयर करनी है.
हर ऐप्लिकेशन में, ऐक्सेस ग्रुप को कीचेन ऐक्सेस ग्रुप या ऐप्लिकेशन ग्रुप पर सेट करें जिन्हें आपने पिछले चरण में बनाया था.
do { try Auth.auth().useUserAccessGroup("TEAMID.com.example.group1") } catch let error as NSError { print("Error changing user access group: %@", error) }
[FIRAuth.auth useUserAccessGroup:@"TEAMID.com.example.group1" error:nil];
कम से कम एक ऐप्लिकेशन में, साइन इन करने के किसी भी तरीके से साइन इन करें.
Auth.auth().signInAnonymously { result, error in // User signed in }
[FIRAuth signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) { // User signed in }];
वही मौजूदा उपयोगकर्ता, ऐक्सेस ग्रुप के सभी ऐप्लिकेशन में उपलब्ध होता है.
var user = Auth.auth().currentUser
FIRUser *user = FIRAuth.auth.currentUser;
शेयर नहीं किए गए कीचेन पर वापस स्विच करें
अनुमति की स्थिति शेयर करने से रोकने के लिए, ऐक्सेस ग्रुप को
nil
पर सेट करें.do { try Auth.auth().useUserAccessGroup(nil) } catch let error as NSError { print("Error changing user access group: %@", error) }
[FIRAuth.auth useUserAccessGroup:nil error:nil];
साइन इन करने के किसी भी तरीके का इस्तेमाल करके, उपयोगकर्ता को साइन इन करें. उपयोगकर्ता की स्थिति उपलब्ध नहीं होगी किसी भी अन्य ऐप्लिकेशन में एक्सपोर्ट कर सकते हैं.
Auth.auth().signInAnonymously { result, error in // User signed in }
[FIRAuth signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) { // User signed in }];
साइन इन किए हुए उपयोगकर्ता को शेयर किए गए कीचेन पर माइग्रेट करें
किसी ऐसे उपयोगकर्ता को माइग्रेट करने के लिए जिसने पहले से ही शेयर की गई स्थिति में साइन इन किया हुआ है:
आने वाले समय में इस्तेमाल करने के लिए, मौजूदा उपयोगकर्ता का रेफ़रंस दें.
var user = Auth.auth().currentUser
FIRUser *user = FIRAuth.auth.currentUser;
(ज़रूरी नहीं) जिस ऐक्सेस ग्रुप को शेयर करना है उसके अधिकार की स्थिति देखें.
let accessGroup = "TEAMID.com.example.group1" var tempUser: User? do { try tempUser = Auth.auth().getStoredUser(forAccessGroup: accessGroup) } catch let error as NSError { print("Error getting stored user: %@", error) } if tempUser != nil { // A user exists in the access group } else { // No user exists in the access group }
NSString *accessGroup = @"TEAMID.com.example.group1"; FIRUser *tempUser = [FIRAuth getStoredUserForAccessGroup:accessGroup error:nil]; if (tempUser) { // A user exists in the access group } else { // No user exists in the access group }
उस ऐक्सेस ग्रुप का इस्तेमाल करें जिसे आपने प्रोजेक्ट की सेटिंग में पहले सेट किया था.
do { try Auth.auth().useUserAccessGroup(accessGroup) } catch let error as NSError { print("Error changing user access group: %@", error) }
[FIRAuth.auth useUserAccessGroup:accessGroup error:nil];
मौजूदा उपयोगकर्ता की जानकारी अपडेट करें.
Auth.auth().updateCurrentUser(user!) { error in // Error handling }
[FIRAuth.auth updateCurrentUser:user completion:^(NSError * _Nullable error) { // Error handling }];
अब उपयोगकर्ता को ऐसे अन्य ऐप्लिकेशन के ज़रिए ऐक्सेस किया जा सकता है जिनके पास उसी ऐक्सेस ग्रुप का ऐक्सेस है.