2016-06-21 15 views
14

Moja aplikacja może więc logować się w Google. Po kliknięciu przycisku udostępnianego przez Google otwiera się widok internetowy i użytkownik wprowadza swoje dane uwierzytelniające. Po zezwoleniu aplikacji na dostęp do swoich informacji, aplikacja następnie podpisuje użytkownika i zmienia SignInViewController na TabBarController (gdzie mogą teraz współdziałać odpowiednio).Jak się wylogować z Google po uwierzytelnieniu

Gdy użytkownik naciśnie przycisk Wyloguj, zostanie skierowany na ekran logowania, jak można się spodziewać. Ale dziwne jest to, że jeśli użytkownik naciśnie przycisk Google ponownie, zostaną automatycznie zalogowani bez dalszego uwierzytelniania i bez opcji usuwania ich konta. Czy jest to sposób na usunięcie poświadczeń konta Google, aby chronić użytkowników przed przypadkowym kradzieżą?

Zaloguj się funkcji:

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

Zaloguj się funkcja:

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

próbowałeś GIDSignIn.sharedInstance() .signOut() –

+0

Dziękuję, to działało! – About7Deaths

+0

Serdecznie zapraszamy –

Odpowiedz

26

Swift

spróbować GIDSignIn.sharedInstance().signOut()

cel - c

[[GIDSignIn sharedInstance] signOut]; 
Powiązane problemy