Aby udostępniać stany uwierzytelniania wielu aplikacjom lub rozszerzeniom na platformach Apple, przechowuj stan uwierzytelniania w udostępnionym pęku kluczy za pomocą usług pęku kluczy i skonfiguruj swoje aplikacje tak, aby korzystały z udostępnionego pęku kluczy.
Dzięki temu użytkownicy mogą:
- Zaloguj się raz i loguj się we wszystkich aplikacjach należących do tej samej grupy dostępu.
- Wyloguj się raz i wyloguj się we wszystkich aplikacjach należących do tej samej grupy dostępu.
Udostępnij stan autoryzacji między aplikacjami
Aby udostępnić stan autoryzacji pomiędzy aplikacjami:
Skonfiguruj grupę dostępu dla swoich aplikacji.
Możesz użyć grupy dostępu pęku kluczy lub grupy aplikacji. Aby uzyskać szczegółowe informacje, zobacz temat Udostępnianie elementów pęku kluczy w ramach kolekcji aplikacji .
Aby skonfigurować grupę dostępu do pęku kluczy, wykonaj następujące czynności dla każdej aplikacji:
- W Xcode przejdź do Ustawienia projektu > Możliwości .
- Włącz udostępnianie pęku kluczy.
- Dodaj identyfikator grupy pęku kluczy. Użyj tego samego identyfikatora dla wszystkich aplikacji, którym chcesz udostępnić stan.
W każdej aplikacji ustaw grupę dostępu na grupę dostępu pęku kluczy lub grupę aplikacji utworzoną w poprzednim kroku.
Szybki
do { try Auth.auth().useUserAccessGroup("TEAMID.com.example.group1") } catch let error as NSError { print("Error changing user access group: %@", error) }
Cel C
[FIRAuth.auth useUserAccessGroup:@"TEAMID.com.example.group1" error:nil];
W co najmniej jednej aplikacji zaloguj użytkownika za pomocą dowolnej metody logowania.
Szybki
Auth.auth().signInAnonymously { result, error in // User signed in }
Cel C
[FIRAuth signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) { // User signed in }];
Ten sam bieżący użytkownik jest dostępny we wszystkich aplikacjach w grupie dostępu.
Szybki
var user = Auth.auth().currentUser
Cel C
FIRUser *user = FIRAuth.auth.currentUser;
Wróć do nieudostępnionego pęku kluczy
Ustaw grupę dostępu na
nil
, aby zatrzymać udostępnianie stanu autoryzacji.Szybki
do { try Auth.auth().useUserAccessGroup(nil) } catch let error as NSError { print("Error changing user access group: %@", error) }
Cel C
[FIRAuth.auth useUserAccessGroup:nil error:nil];
Zaloguj użytkownika za pomocą dowolnej metody logowania. Stan użytkownika nie będzie dostępny dla żadnej innej aplikacji.
Szybki
Auth.auth().signInAnonymously { result, error in // User signed in }
Cel C
[FIRAuth signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) { // User signed in }];
Przeprowadź migrację zalogowanego użytkownika do udostępnionego pęku kluczy
Aby przeprowadzić migrację użytkownika, który jest już zalogowany, do stanu udostępnionego:
Utwórz odniesienie do bieżącego użytkownika do wykorzystania w przyszłości.
Szybki
var user = Auth.auth().currentUser
Cel C
FIRUser *user = FIRAuth.auth.currentUser;
(Opcjonalnie) Sprawdź stan uwierzytelnienia grupy dostępu, którą chcesz udostępnić.
Szybki
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 }
Cel 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 }
Użyj grupy dostępu ustawionej wcześniej w ustawieniach projektu.
Szybki
do { try Auth.auth().useUserAccessGroup(accessGroup) } catch let error as NSError { print("Error changing user access group: %@", error) }
Cel C
[FIRAuth.auth useUserAccessGroup:accessGroup error:nil];
Zaktualizuj bieżącego użytkownika.
Szybki
Auth.auth().updateCurrentUser(user!) { error in // Error handling }
Cel C
[FIRAuth.auth updateCurrentUser:user completion:^(NSError * _Nullable error) { // Error handling }];
Dostęp do użytkownika mogą teraz uzyskać inne aplikacje, które mają dostęp do tej samej grupy dostępu.