Câu hỏi Cách đăng xuất khỏi Google sau khi được xác thực


Vì vậy, ứng dụng của tôi có tùy chọn đăng nhập bằng Google. Khi nhấp vào nút mà Google cung cấp, chế độ xem web sẽ mở ra và cho phép người dùng nhập thông tin đăng nhập của họ. Sau khi cho phép ứng dụng truy cập thông tin của họ, ứng dụng sau đó đăng nhập người dùng và thay đổi SignInViewController thành TabBarController (nơi họ hiện có thể tương tác tương ứng).

Khi người dùng nhấn nút Đăng xuất, họ sẽ được chuyển đến màn hình đăng nhập như mong đợi. Nhưng điều kỳ lạ là, nếu người dùng nhấn nút google một lần nữa, họ sẽ tự động đăng nhập mà không có thêm xác thực nào cả và không có tùy chọn để xóa tài khoản của họ. Là một cách để xóa thông tin đăng nhập tài khoản google nhằm bảo vệ người dùng khỏi bị đánh cắp tình cờ?

Chức năng đăng nhập:

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

Chức năng đăng xuất:

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

17
2018-06-21 05:55


gốc


bạn đã thử GIDSignIn.sharedInstance (). signOut () - Rahul Patel
Cảm ơn bạn, đã làm việc! - About7Deaths
Không có chi - Rahul Patel


Các câu trả lời:


Nhanh

thử GIDSignIn.sharedInstance().signOut() 

mục tiêu - c

[[GIDSignIn sharedInstance] signOut];

36
2018-06-21 06:42





Vâng, giống như @ Rahul cho biết mã sau đây sẽ là một cách phù hợp để thực hiện nó.

GIDSignIn.sharedInstance().signOut()

https://developers.google.com/identity/sign-in/ios/sign-in?ver=swift#sign_out_the_user


8
2018-06-21 06:25



Đây là cách chính xác để làm điều đó; nó đã làm việc! - About7Deaths