Wie man sich nach der Authentifizierung von Google abmeldet
So hat meine App die Option, sich bei Google anzumelden. Wenn Sie auf die von Google bereitgestellte Schaltfläche klicken, wird eine Webansicht geöffnet, in der der Benutzer seine Anmeldeinformationen eingibt. Nachdem die App auf ihre Informationen zugegriffen hat, meldet sie den Benutzer an und ändert den SignInViewController in den TabBarController (wo sie jetzt entsprechend interagieren können).
Wenn der Benutzer eine Abmeldetaste drückt, wird er erwartungsgemäß zum Anmeldebildschirm geleitet. Aber das Seltsame ist, wenn der Nutzer erneut auf die Google-Schaltfläche drückt, wird er automatisch ohne weitere Authentifizierung und ohne Option zum Entfernen seines Kontos angemeldet. Ist dies eine Möglichkeit, die Anmeldeinformationen des Google-Kontos zu löschen, um die Nutzer vor versehentlichem Diebstahl zu schützen?
Anmeldefunktion:
func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
if let error = error {
print(error.localizedDescription)
return
}
let authentication = user.authentication
let credential = FIRGoogleAuthProvider.credentialWithIDToken(authentication.idToken, accessToken: authentication.accessToken)
FIRAuth.auth()?.signInWithCredential(credential) { (user, error) in
// ...
SignInViewController().signedIn(user)
}
// ...
}
Abmeldefunktion:
func signOutOverride() {
do {
try! FIRAuth.auth()!.signOut()
CredentialState.sharedInstance.signedIn = false
// Set the view to the login screen after signing out
let storyboard = UIStoryboard(name: "SignIn", bundle: nil)
let loginVC = storyboard.instantiateViewControllerWithIdentifier("SignInVC") as! SignInViewController
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window?.rootViewController = loginVC
} catch let signOutError as NSError {
print ("Error signing out: \(signOutError)")
}
}