我将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()