3

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

在此处输入图像描述

根据RFC 8252 ,建议将其用于移动应用程序

在此处输入图像描述

当我转到 时Google developers console > Create Credentials > OAuth Client id > Android [Application type],它会询问我:名称、SHA1 指纹和包名。

我假设不需要重定向 URI,当我在创建凭据时设置包名称时,当用户授权我的应用程序时,我的应用程序将获得控制权或更确切地说是身份验证代码。(如本答案所示)。如果我的理解有误,请纠正我。

此时,我需要将 auth_code 发送到服务器进行验证,这需要客户端 ID 和密码。但是在创建凭据时,我没有提供任何客户端机密。

那么这整件事应该如何运作呢?

更新

我试图从他们的教程中生成配置。它生成了 2 个凭据:一个用于 Web 应用程序,另一个用于 Android。它还生成了一个credentials.json包含 Web 客户端条目的条目。现在,如果我理解正确,此代码将进入 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?
4

0 回答 0