我有下一个代码,直接来自谷歌参考(https://developers.google.com/identity/sign-in/web/backend-auth)
public function verifyFromAndroid($idToken=null) {
if(empty($idToken)) {
$idToken = self::SAMPLE_ID_TOKEN;
}
$client = new Google_Client(['client_id' => self::CLIENT_ID]);
$payload = $client->verifyIdToken($idToken);
if ($payload) {
print_r($payload);
$userid = $payload['sub'];
// If request specified a G Suite domain:
//$domain = $payload['hd'];
} else {
var_dump($payload);
$this->lastError = "Invalid ID token";
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
但此方法始终返回 false,即使使用使用oauthplayground 在线工具创建和工作的有效 id 令牌也是如此。
下一个代码工作正常,直接使用 GoogleAccessToken_Verify 类。有人能告诉我为什么官方的 Google 代码不起作用,是的,我自己的代码使用官方的 Google-clien-php sdk 吗?
try {
$verify = new Google_AccessToken_Verify();
$result = $verify->verifyIdToken($this->idToken);
if($result) …Run Code Online (Sandbox Code Playgroud)