这是我对Web应用程序身份验证流程的理解;
根据RFC 8252
,建议将其用于移动应用程序当我转到Google developers console > Create Credentials > OAuth Client id > Android [Application type]
时,它询问我:名称,SHA1指纹和包裹名称。
我假设不需要重定向URI,并且当用户在创建凭据时设置程序包名称时,当用户授权我的应用程序时,我的应用程序将获得控制或身份验证代码。 (如this answer中所述)。如果我的理解错误,请纠正我。
这时,我需要将auth_code发送到服务器进行验证,这需要客户端ID和密码。但是在创建凭据时,我没有任何客户端机密。
那么整个事情到底应该如何工作?
更新
我试图从their tutorial生成配置。它生成了2个凭据:一个用于Web应用程序,另一个用于Android。它还生成了一个credentials.json
,其中包含一个
网络客户端。现在,如果我正确理解,此代码将在android应用中获取身份验证代码。
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestServerAuthCode("client id issued for web application")'
.build()
但是,如果我的上述发现是正确的,那么它将提出更多问题来验证我的发现。