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