功能
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
没有得到调用。有人可以帮我吗?
答案 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