Google登录Android应用程序如何工作?

时间:2018-11-21 10:05:31

标签: android oauth-2.0 google-oauth google-auth-library-nodejs

这是我对Web应用程序身份验证流程的理解;

enter image description here

根据RFC 8252

,建议将其用于移动应用程序

enter image description here

当我转到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()

但是,如果我的上述发现是正确的,那么它将提出更多问题来验证我的发现。

  1. 何时可以传递为Android生成的客户端ID?
  2. 在这种情况下,重定向URL是什么? (我认为我们不需要进行设置)
  3. 我是否必须使用服务器端的所有客户端ID来验证auth_code?

0 个答案:

没有答案