GIDSignIn.sharedInstance.restorePreviousSignIn is not working as expected
@camden-king 已经在做这个了。
开始于 2023年11月8日。
评估
这个 Issue 还没有评估数据。
描述
Describe the bug
I've been using 'GoogleSignIn' version '4.1.1' for many years and didn't have any trouble.Recently I've updated to '7.0.0' because the older version does not support the Apple Silicon.Back on the '4.1.1' I've been using GIDSignIn.sharedInstance().signInSilently() to sign in the user that is already signed in.Then in the delegate method I was catching any kind of error.One of these errors is expired token.And on the older version everything was working perfect as a swiss watch while the newest version seems to have some troubles with catching errors on time.If I use '4.1.1' and I force sign out a Google account session with an app using this library everything works perfect, the delegate method handles immediately an error after the first GIDSignIn.sharedInstance().signInSilently() attempt, while the newest version where I'm forced to use this method:
GIDSignIn.sharedInstance.restorePreviousSignIn { user, error in
if error != nil || user == nil {
self.service.authorizer = nil
} else {
self.service.authorizer = user?.fetcherAuthorizer
}
}
does not catch any kind of error and returns user without error as if everything is okay and no force sign out was done which leads to a bad user experience because app acts like if user is signed in, while actually not.The most interesting part is that after about 1 hour this method starts returning error saying "expired token", but again after waiting one hour.Does this method really supposed to give me an error about expired token after one hour and if so how to detect this error immediately without waiting so much time?
To Reproduce
Steps to reproduce the behavior:
- Sign in inside your app.
- Force sign out your app session from Devices section in the Security tab of your Google account settings.
- Restart the app, the app will act like the token is not expired, unable to show you any kind of data.
- Wait 1 hour but don't push Sign Out button in the app, just wait, after 1 hour
restorePreviousSignInmethod will return the error so the app will act like it should.
Even the test app has this issue, if you will sign out like in the step 2 and you will restart the test app it will show you that you are signed in...
Expected behavior
I guess giving me the error immediately like the sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) method does in the version '4.1.1' without giving to a user any kind of bad experience.
Environment
- Device: [ iPhone XS Max]
- OS: [iOS 17.0 ]
- Pod version: [ 7.0.0]
- 主要语言
- Objective-C
- 星标
- 751
- 派生
- 282
- 平均合并
- 4 天 20 小时
- 30 天内合并 PR
- 11
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
google/GoogleSignIn-iOS 的其他 Issue
-
enhancement triage
难度 2/5 1-3 小时 新手友好度 72/100
google/GoogleSignIn-iOS#621 ·
-
enhancement triage
难度 2/5 1-3 小时 新手友好度 76/100
google/GoogleSignIn-iOS#620 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
google/GoogleSignIn-iOS#440 · 4 条评论 · 2 个 reaction ·
-
enhancement triage
难度 4/5 3-5 天 新手友好度 48/100
google/GoogleSignIn-iOS#611 ·
-
难度 4/5 3-5 天 新手友好度 45/100
google/GoogleSignIn-iOS#607 ·
查看 google/GoogleSignIn-iOS 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
objective-see/LuLu#925 ·
-
bug
难度 2/5 1-3 小时 新手友好度 84/100
-
难度 2/5 1-3 小时 新手友好度 72/100
noah-nuebling/mac-mouse-fix#2054 ·
-
难度 1/5 1 小时以内 新手友好度 92/100
obsproject/obs-studio#13918 ·
-
难度 2/5 1-3 小时 新手友好度 88/100
HigherOrderCO/Bend#842 · 2 条评论 ·