साझा ऐप्पल किचेन के साथ क्रॉस-ऐप प्रमाणीकरण सक्षम करना

ऐप्पल प्लेटफ़ॉर्म पर कई ऐप्स या एक्सटेंशन में प्रमाणीकरण स्थिति साझा करने के लिए, किचेन सेवाओं का उपयोग करके प्रमाणीकरण स्थिति को साझा कीचेन में संग्रहीत करें और साझा कीचेन का उपयोग करने के लिए अपने ऐप्स को कॉन्फ़िगर करें।

यह उपयोगकर्ताओं को इसकी अनुमति देता है:

  • एक बार साइन इन करें और एक ही एक्सेस ग्रुप से संबंधित सभी ऐप्स में साइन इन रहें।
  • एक बार साइन आउट करें और एक ही एक्सेस समूह से संबंधित सभी ऐप्स से साइन आउट हो जाएं।

ऐप्स के बीच प्रमाणीकरण स्थिति साझा करें

ऐप्स के बीच प्रमाणीकरण स्थिति साझा करने के लिए:

  1. अपने ऐप्स के लिए एक एक्सेस समूह सेट करें।

    आप या तो किचेन एक्सेस ग्रुप या ऐप ग्रुप का उपयोग कर सकते हैं। विवरण के लिए ऐप्स के संग्रह के बीच किचेन आइटम तक पहुंच साझा करना देखें।

    किचेन एक्सेस समूह स्थापित करने के लिए, प्रत्येक ऐप के लिए निम्नलिखित कार्य करें:

    1. Xcode में, प्रोजेक्ट सेटिंग्स > क्षमताएँ पर जाएँ।
    2. किचेन शेयरिंग सक्षम करें।
    3. एक किचेन समूह पहचानकर्ता जोड़ें. उन सभी ऐप्स के लिए समान पहचानकर्ता का उपयोग करें जिन्हें आप स्थिति साझा करना चाहते हैं।
  2. प्रत्येक ऐप में, एक्सेस ग्रुप को किचेन एक्सेस ग्रुप या ऐप ग्रुप पर सेट करें जिसे आपने पिछले चरण में बनाया था।

    तीव्र

    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];
    
  3. कम से कम एक ऐप में, किसी उपयोगकर्ता को किसी भी साइन इन विधि से साइन इन करें।

    तीव्र

    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;
    

किसी साझा न किए गए किचेन पर वापस जाएँ

  1. प्रमाणीकरण स्थिति साझा करना बंद करने के लिए एक्सेस समूह को 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];
    
  2. किसी उपयोगकर्ता को किसी भी साइन इन विधि से साइन इन करें। उपयोगकर्ता स्थिति किसी भी अन्य ऐप्स के लिए उपलब्ध नहीं होगी।

    तीव्र

    Auth.auth().signInAnonymously { result, error in
      // User signed in
    }
    

    उद्देश्य सी

    [FIRAuth signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result,
                                       NSError *_Nullable error) {
      // User signed in
    }];
    

साइन-इन किए गए उपयोगकर्ता को साझा कीचेन में माइग्रेट करें

किसी ऐसे उपयोगकर्ता को स्थानांतरित करने के लिए जो पहले से ही किसी साझा स्थिति में साइन इन है:

  1. भविष्य में उपयोग के लिए वर्तमान उपयोगकर्ता का संदर्भ बनाएं।

    तीव्र

    var user = Auth.auth().currentUser
    

    उद्देश्य सी

    FIRUser *user = FIRAuth.auth.currentUser;
    
  2. (वैकल्पिक) जिस एक्सेस समूह को आप साझा करना चाहते हैं उसकी प्रामाणिक स्थिति जांचें।

    तीव्र

    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
    }
    
  3. उस एक्सेस समूह का उपयोग करें जिसे आपने पहले प्रोजेक्ट सेटिंग्स में सेट किया था।

    तीव्र

    do {
      try Auth.auth().useUserAccessGroup(accessGroup)
    } catch let error as NSError {
      print("Error changing user access group: %@", error)
    }
    

    उद्देश्य सी

    [FIRAuth.auth useUserAccessGroup:accessGroup error:nil];
    
  4. वर्तमान उपयोगकर्ता को अद्यतन करें.

    तीव्र

    Auth.auth().updateCurrentUser(user!) { error in
      // Error handling
    }
    

    उद्देश्य सी

    [FIRAuth.auth updateCurrentUser:user completion:^(NSError * _Nullable error) {
      // Error handling
    }];
    
  5. उपयोगकर्ता को अब अन्य ऐप्स द्वारा एक्सेस किया जा सकता है जिनके पास समान एक्सेस समूह तक पहुंच है।