仍与谷歌联系

时间:2018-04-13 12:55:36

标签: ios swift google-api google-login gidsignin

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

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

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

由于

1 个答案:

答案 0 :(得分: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
    }
}

总而言之 - 您不会让用户在应用程序被杀时保持登录状态,而是通过执行" silent"来重新创建登录状态。登录。

P.S。如果您要签署用户并删除钥匙串项目,请致电:GIDSignIn.sharedInstance().disconnect()