我将GIDButton放在我的应用程序上。效果很好。

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

有人知道如何让用户保持登录状态吗?

谢谢

最佳答案

当用户使用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()

08-05 06:28