Um Authentifizierungsstatus über mehrere Apps oder Erweiterungen auf Apple-Plattformen hinweg zu teilen, speichern Sie den Authentifizierungsstatus mithilfe der Schlüsselbunddienste in einem freigegebenen Schlüsselbund und konfigurieren Sie Ihre Apps für die Verwendung des freigegebenen Schlüsselbunds.
Dadurch können Benutzer:
- Melden Sie sich einmal an und bleiben Sie bei allen Apps angemeldet, die derselben Zugriffsgruppe angehören.
- Melden Sie sich einmal ab und werden Sie bei allen Apps abgemeldet, die derselben Zugriffsgruppe angehören.
Teilen Sie den Authentifizierungsstatus zwischen Apps
So teilen Sie den Authentifizierungsstatus zwischen Apps:
Richten Sie eine Zugriffsgruppe für Ihre Apps ein.
Sie können entweder eine Schlüsselbundzugriffsgruppe oder eine App-Gruppe verwenden. Weitere Informationen finden Sie unter Teilen des Zugriffs auf Schlüsselbundelemente für eine Sammlung von Apps .
Um eine Schlüsselbund-Zugriffsgruppe einzurichten, gehen Sie für jede App wie folgt vor:
- Gehen Sie in Xcode zu Projekteinstellungen > Funktionen .
- Aktivieren Sie die Schlüsselbundfreigabe.
- Fügen Sie eine Schlüsselbundgruppenkennung hinzu. Verwenden Sie für alle Apps, deren Status Sie teilen möchten, dieselbe Kennung.
Legen Sie in jeder App die Zugriffsgruppe auf die Schlüsselbund-Zugriffsgruppe oder App-Gruppe fest, die Sie im vorherigen Schritt erstellt haben.
Schnell
do { try Auth.auth().useUserAccessGroup("TEAMID.com.example.group1") } catch let error as NSError { print("Error changing user access group: %@", error) }
Ziel c
[FIRAuth.auth useUserAccessGroup:@"TEAMID.com.example.group1" error:nil];
Melden Sie in mindestens einer App einen Benutzer mit einer beliebigen Anmeldemethode an.
Schnell
Auth.auth().signInAnonymously { result, error in // User signed in }
Ziel c
[FIRAuth signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) { // User signed in }];
In allen Apps der Zugriffsgruppe ist derselbe aktuelle Benutzer verfügbar.
Schnell
var user = Auth.auth().currentUser
Ziel c
FIRUser *user = FIRAuth.auth.currentUser;
Wechseln Sie zurück zu einem nicht freigegebenen Schlüsselbund
Setzen Sie die Zugriffsgruppe auf
nil
, um die Freigabe des Authentifizierungsstatus zu beenden.Schnell
do { try Auth.auth().useUserAccessGroup(nil) } catch let error as NSError { print("Error changing user access group: %@", error) }
Ziel c
[FIRAuth.auth useUserAccessGroup:nil error:nil];
Melden Sie einen Benutzer mit einer beliebigen Anmeldemethode an. Der Benutzerstatus ist für keine anderen Apps verfügbar.
Schnell
Auth.auth().signInAnonymously { result, error in // User signed in }
Ziel c
[FIRAuth signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) { // User signed in }];
Migrieren Sie einen angemeldeten Benutzer zu einem freigegebenen Schlüsselbund
So migrieren Sie einen Benutzer, der bereits angemeldet ist, in einen freigegebenen Status:
Machen Sie für die zukünftige Verwendung einen Verweis auf den aktuellen Benutzer.
Schnell
var user = Auth.auth().currentUser
Ziel c
FIRUser *user = FIRAuth.auth.currentUser;
(Optional) Überprüfen Sie den Authentifizierungsstatus der Zugriffsgruppe, die Sie freigeben möchten.
Schnell
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 }
Ziel 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 }
Verwenden Sie eine Zugriffsgruppe, die Sie zuvor in den Projekteinstellungen festgelegt haben.
Schnell
do { try Auth.auth().useUserAccessGroup(accessGroup) } catch let error as NSError { print("Error changing user access group: %@", error) }
Ziel c
[FIRAuth.auth useUserAccessGroup:accessGroup error:nil];
Aktualisieren Sie den aktuellen Benutzer.
Schnell
Auth.auth().updateCurrentUser(user!) { error in // Error handling }
Ziel c
[FIRAuth.auth updateCurrentUser:user completion:^(NSError * _Nullable error) { // Error handling }];
Auf den Benutzer kann jetzt von anderen Apps zugegriffen werden, die Zugriff auf dieselbe Zugriffsgruppe haben.