Ich verwende die Google Tabellen-API und die Google Drive-API und habe meine App so umgestellt, dass sie Google SignIn anstelle der eingebetteten WebView-Authentifizierung verwendet. Ich kann den Benutzer erfolgreich anmelden und die Authentifizierung an die API-Dienste weitergeben. Wenn die App jedoch in den Hintergrund tritt, werden die Anmeldeinformationen nicht gespeichert. Zuvor würde dieser Code nur Anmeldeinformationen aus dem Schlüsselbund neu geladen und die Token aktualisieren, wenn Bedarf sofort sein:Google Signierungen beim erneuten Starten der App nicht beibehalten?
self.service.authorizer =
[GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:kKeychainItemName
clientID:kClientID
clientSecret:nil];
Aber jetzt muss ich überprüfen, ob Anmeldeinformationen in den Schlüsselbund existieren den folgenden Code in meinem AppDelegate mit:
if ([GIDSignIn sharedInstance].hasAuthInKeychain) {
NSLog(@"Auth exists in keychain!");
[[GIDSignIn sharedInstance] signInSilently];
} else {
NSLog(@"No credentials in keychain!");
[[GIDSignIn sharedInstance] signIn];
}
SignInSilent scheint eine Weile zu dauern und ich muss meinen Code für 3 Sekunden pausieren, bevor ich die Zugangsdaten an meine API-Dienste weitergebe. Aus der Dokumentation scheint es nicht möglich, die Anmeldeinformationen nur noch aus dem Schlüsselbund zu speichern und neu zu laden.