หากต้องการแชร์สถานะการตรวจสอบสิทธิ์ในแอปหรือส่วนขยายหลายรายการบนแพลตฟอร์ม Apple ให้เก็บ สถานะการตรวจสอบสิทธิ์ไว้ในพวงกุญแจที่แชร์โดยใช้ บริการพวงกุญแจ แล้วกำหนดค่าแอปให้ใช้พวงกุญแจที่แชร์
ซึ่งจะช่วยให้ผู้ใช้ทำสิ่งต่อไปนี้ได้
- ลงชื่อเข้าใช้เพียงครั้งเดียวและระบบจะลงชื่อเข้าใช้ในแอปทั้งหมดที่อยู่ในกลุ่มที่มีสิทธิ์เข้าถึงเดียวกัน
- ออกจากระบบเพียงครั้งเดียวและระบบจะออกจากระบบจากแอปทั้งหมดที่อยู่ในกลุ่มที่มีสิทธิ์เข้าถึงเดียวกัน
แชร์สถานะการตรวจสอบสิทธิ์ระหว่างแอป
วิธีแชร์สถานะการตรวจสอบสิทธิ์ระหว่างแอป
ตั้งค่ากลุ่มที่มีสิทธิ์เข้าถึงสำหรับแอป
คุณสามารถใช้กลุ่มที่มีสิทธิ์เข้าถึงพวงกุญแจหรือกลุ่มแอปก็ได้ ดูรายละเอียดได้ที่การแชร์สิทธิ์เข้าถึงรายการพวงกุญแจระหว่างคอลเล็กชันแอป
หากต้องการตั้งค่ากลุ่มที่มีสิทธิ์เข้าถึงพวงกุญแจ ให้ทำดังนี้สำหรับแต่ละแอป
- ใน Xcode ให้ไปที่การตั้งค่าโปรเจ็กต์ > ความสามารถ
- เปิดใช้การแชร์พวงกุญแจ
- เพิ่มตัวระบุกลุ่มพวงกุญแจ ใช้ตัวระบุเดียวกันสำหรับแอปทั้งหมดที่ต้องการแชร์สถานะ
ในแต่ละแอป ให้ตั้งค่ากลุ่มที่มีสิทธิ์เข้าถึงเป็นกลุ่มที่มีสิทธิ์เข้าถึงพวงกุญแจหรือกลุ่มแอปที่คุณสร้างขึ้นในขั้นตอนก่อนหน้า
Swift
do { try Auth.auth().useUserAccessGroup("TEAMID.com.example.group1") } catch let error as NSError { print("Error changing user access group: %@", error) }Objective-C
[FIRAuth.auth useUserAccessGroup:@"TEAMID.com.example.group1" error:nil];ลงชื่อเข้าใช้ผู้ใช้ด้วยวิธีการลงชื่อเข้าใช้ใดก็ได้ในแอปอย่างน้อย 1 แอป
Swift
Auth.auth().signInAnonymously { result, error in // User signed in }Objective-C
[FIRAuth signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) { // User signed in }];ผู้ใช้ปัจจุบันคนเดียวกันจะพร้อมใช้งานในแอปทั้งหมดในกลุ่มที่มีสิทธิ์เข้าถึง
Swift
var user = Auth.auth().currentUserObjective-C
FIRUser *user = FIRAuth.auth.currentUser;
เปลี่ยนกลับไปใช้พวงกุญแจที่ไม่ได้แชร์
ตั้งค่ากลุ่มที่มีสิทธิ์เข้าถึงเป็น
nilเพื่อหยุดการแชร์สถานะการตรวจสอบสิทธิ์Swift
do { try Auth.auth().useUserAccessGroup(nil) } catch let error as NSError { print("Error changing user access group: %@", error) }Objective-C
[FIRAuth.auth useUserAccessGroup:nil error:nil];ลงชื่อเข้าใช้ผู้ใช้ด้วยวิธีการลงชื่อเข้าใช้ใดก็ได้ สถานะผู้ใช้จะไม่พร้อมใช้งานในแอปอื่นๆ
Swift
Auth.auth().signInAnonymously { result, error in // User signed in }Objective-C
[FIRAuth signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) { // User signed in }];
ย้ายข้อมูลผู้ใช้ที่ลงชื่อเข้าใช้ไปยังพวงกุญแจที่แชร์
วิธีย้ายข้อมูลผู้ใช้ที่ลงชื่อเข้าใช้แล้วไปยังสถานะที่แชร์
สร้างการอ้างอิงถึงผู้ใช้ปัจจุบันเพื่อใช้ในอนาคต
Swift
var user = Auth.auth().currentUserObjective-C
FIRUser *user = FIRAuth.auth.currentUser;(ไม่บังคับ) ตรวจสอบสถานะการตรวจสอบสิทธิ์ของกลุ่มที่มีสิทธิ์เข้าถึงที่คุณต้องการแชร์
Swift
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 }Objective-C
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 }ใช้กลุ่มที่มีสิทธิ์เข้าถึงที่คุณตั้งค่าไว้ก่อนหน้านี้ในการตั้งค่าโปรเจ็กต์
Swift
do { try Auth.auth().useUserAccessGroup(accessGroup) } catch let error as NSError { print("Error changing user access group: %@", error) }Objective-C
[FIRAuth.auth useUserAccessGroup:accessGroup error:nil];อัปเดตผู้ใช้ปัจจุบัน
Swift
Auth.auth().updateCurrentUser(user!) { error in // Error handling }Objective-C
[FIRAuth.auth updateCurrentUser:user completion:^(NSError * _Nullable error) { // Error handling }];ตอนนี้แอปอื่นๆ ที่มีสิทธิ์เข้าถึงกลุ่มที่มีสิทธิ์เข้าถึงเดียวกันจะเข้าถึงผู้ใช้ได้