2016-06-21 4 views
14

Итак, у моего приложения есть возможность входа в систему с помощью Google. После нажатия кнопки, которую предоставляет Google, открывается веб-представление и пользователь вводит свои учетные данные. После того, как приложение сможет получить доступ к своей информации, приложение затем подписывает пользователя и изменяет SignInViewController на TabBarController (где они могут теперь взаимодействовать соответственно).Как выйти из Google после проверки подлинности

Когда пользователь нажимает кнопку «Выйти», они направляются на экран входа в систему, как и следовало ожидать. Но странно, если пользователь снова нажимает кнопку Google, они автоматически подписываются без дополнительной аутентификации и не могут удалить свою учетную запись. Является ли это способом очистки учетных данных учетной записи google, чтобы защитить пользователей от случайного кражи?

Вход функции:

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

Вход из функции:

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

вы пробовали GIDSignIn.sharedInstance() .signOut() –

+0

Спасибо, это сработало! – About7Deaths

+0

Добро пожаловать –

ответ

26

Swift

попробовать GIDSignIn.sharedInstance().signOut()

цель - с

[[GIDSignIn sharedInstance] signOut]; 

 Смежные вопросы

  • Нет связанных вопросов^_^