如何从此Android应用获取此Google登录ID令牌以验证服务器端?

Kei*_*ith 9 php android google-authentication oauth-2.0

我通过这样的方式启动我的Android应用程序中的ID令牌:

GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestIdToken(getString(R.string.server_client_id))
                .requestEmail()
                .build();
Run Code Online (Sandbox Code Playgroud)

server_client_id我的SERVER的Oauth客户端ID 在哪里.然后我请求令牌googleAccount.getIdToken()

然后在我的服务器(PHP)上,当我验证令牌时,我验证它是这样的:

$client = new \Google_Client(['client_id' => getenv("GOOGLE_CLIENT_ID")]);
    try {
        $payload = $client->verifyIdToken($this->idToken);
    } catch (\Exception $e){
        throw new BadRequestHttpException($e->getMessage());
    }
    if($payload){
        $this->verifyPayload($payload);
    } else {
        throw new AccessDeniedHttpException("Invalid ID Token");
    }
Run Code Online (Sandbox Code Playgroud)

GOOGLE_CLIENT_ID我的ANDROID的Oauth客户端ID 在哪里?

我正在关注此指南:https://developers.google.com/identity/sign-in/android/start-integrating.

在此页面上显示:https://developers.google.com/identity/sign-in/android/backend-auth

配置Google登录时,请调用requestIdToken方法并将其传递给服务器的Web客户端ID.

因此,为什么我server_client_id在我的Android应用程序中使用.它是否正确?

//指定访问后端的应用程序的CLIENT_ID

这就是我在服务器上使用ANDROID客户端ID的原因.

这是正确的吗?要使用彼此的Oauth client_id?或者他们都应该使用Android CLIENT_ID?

提前致谢

Kei*_*ith 5

好的,我想通了。Android 应用程序和 Web 服务器都需要使用 SERVER 的密钥。即使我使用它的密钥 SHA1 和所有内容为应用程序创建了一个客户端 ID。