我已经将Google登录工作流程集成到我的应用程序中已有相当长的时间了,直到大约2个月前,一切正常。用户开始抱怨每次都要登录。
会发生什么:我仍然可以使用“ requestIdToken”选项登录我的应用。我得到令牌并可以在我的服务器上对其进行验证。当我关闭应用程序并再次启动时,我通过silentSignIn调用获得了相同的令牌。到目前为止,一切都很好。但是,当我在初始登录一个小时后启动我的应用程序时,出现错误代码4(这意味着我尚未登录)。
我做了很多尝试,然后将代码颠倒了,但我无法使其再次正常运行。当我尝试不带requestIdToken的silentSignIn时,我将成功登录。因此登录似乎可以正常工作,但是以某种方式,在初始令牌过期后,我无法获得新令牌。我什至尝试在API控制台上创建一个新的Web-Client-Id,但没有任何改变。
这是我的简单选择,其余的与Google示例完全相同:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.server_client_id))
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
我使用com.google.android.gms:play-services-auth:16.0.1
有什么重要的事情,我必须在API控制台中为我的Web客户端ID或我不知道的所有魔术权限进行配置。