2016-06-21 34 views
14

Quindi la mia app ha la possibilità di accedere con Google. Facendo clic sul pulsante fornito da Google, viene aperta una vista Web e l'utente inserisce le proprie credenziali. Dopo aver consentito all'app di accedere alle proprie informazioni, l'app firma l'utente e modifica SignInViewController sul TabBarController (dove ora possono interagire di conseguenza).Come uscire da Google dopo l'autenticazione

Quando l'utente preme un pulsante Signout, viene indirizzato alla schermata di accesso come ci si aspetterebbe. Ma la cosa strana è che, se l'utente preme di nuovo il pulsante google, viene automaticamente eseguito l'accesso senza ulteriore autenticazione e nessuna opzione per rimuovere il proprio account. È un modo per cancellare le credenziali dell'account google in modo da proteggere gli utenti dal furto accidentale?

Accedi funzione:

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) 
    } 
    // ... 
} 

Segno out funzione:

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)") 
    } 
} 
+0

Hai provato GIDSignIn.sharedInstance() .signOut() –

+0

Grazie, ha funzionato! – About7Deaths

+0

Prego –

risposta

26

Swift

provare GIDSignIn.sharedInstance().signOut()

obiettivo - c

[[GIDSignIn sharedInstance] signOut];