1

我把 GIDButton 放在我的应用程序上。它工作得很好。

但是当用户完成登录并关闭应用程序时,他必须再次登录。那就是问题所在。

有人知道我怎样才能让用户保持登录状态吗?

谢谢

4

1 回答 1

1

当用户使用 Google 登录时,Google SDK 会将用户的密码存储在钥匙串中。应用程序被杀死后登录状态消失(但钥匙串项可能没有),为此您可以检查密码是否已存储在钥匙串中并再次静默登录用户(无需用户交互)。

// Possibly show an activity indicator here
if GIDSignIn.sharedInstance().hasAuthInKeychain() {
    // Sign in user without interaction
    GIDSignIn.sharedInstance().signInSilently()
} else {
    // Show sign in flow
    GIDSignIn.sharedInstance().signIn()
}

稍后在您的代码中,处理委托回调:

extension YourLoginManager: GIDSignInDelegate {
    public func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
    // Possibly remove the activity indicator
    if user != nil {
        // Do stuff that a logged in user does
    }
}

总而言之-当应用程序被终止时,您不会让用户保持登录状态,而是通过“静默”登录来重新创建登录状态。

ps 如果要注销用户并删除钥匙串项目调用:GIDSignIn.sharedInstance().disconnect()

于 2018-04-13T13:51:14.543 回答