[英]How can I get this Google Login ID Token from this Android app to verify server-side?
我通过这样的方式启动我的Android应用程序中的ID令牌:
GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.server_client_id))
.requestEmail()
.build();
其中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");
}
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。
因此,为什么我在我的Android应用程序中使用server_client_id
。 它是否正确?
//指定访问后端的应用程序的CLIENT_ID
这就是我在服务器上使用ANDROID客户端ID的原因。
这是正确的吗? 要使用彼此的Oauth client_id? 或者他们都应该使用Android CLIENT_ID?
提前致谢
好的,我明白了。 Android应用程序和Web服务器都需要使用SERVER的密钥。 即使我使用它的密钥SHA1和所有内容为应用程序创建了客户端ID。
重要提示:切勿在应用内使用服务器密钥
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.