在App上重新启动如何调用iOS的Google登录的功能登录(didSignInFor)

时间:2019-03-30 23:28:10

标签: ios swift xcode

功能

func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)

成功登录后将调用

,但是在重新启动应用程序时,还需要调用该函数以获取用户数据。我不知道如何处理应用重新启动。

我尝试了GIDSignIn.sharedInstance().signInSilently,但是它不起作用。没有调用函数sign。重新启动应用程序后如何获取当前用户的数据?

我在didFinishLaunchingWithOptions函数中尝试过:

if (GIDSignIn.sharedInstance()?.hasAuthInKeychain()) == true {
    DispatchQueue.main.async {
        GIDSignIn.sharedInstance().signInSilently()
    }
}

但是我没有获得当前用户,并且函数didSignIn没有得到调用。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您无需在每次重新启动应用程序时都致电func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)

用户成功登录google后,您可以简单地保存用户详细信息,并可以通过

获得accessToken
let accessToken = user.authentication.accessToken

,您可以像在UserDefault中一样将其保存在本地,下次用户重新启动应用程序时,可以通过在本地访问该accessToken来轻松识别。

使用func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)时,用户参数将在用户尝试登录时拥有用户数据。并且可以将这些数据保存在本地。

通过注销,您可以简单地在本地删除数据,以便用户重新启动应用程序时,他需要再次登录。

更新

您可以使用profile的{​​{1}}属性访问用户信息。检查下面的示例

user