PHP 7.4中Google ID Token验证失败,但tokeninfo接口可用的问题求助
PHP验证Google ID Token异常:tokeninfo端点验证通过但PHP SDK返回false
问题背景
我在使用PHP API验证Google ID Token时碰到了问题:直接调用Google的tokeninfo端点可以成功验证Token的有效性,但PHP代码里的$client->verifyIdToken($id_token)方法却一直返回false。目前我已经把PHP版本降级到了7.4,但问题依然存在。
我想请教的问题
- 有没有开发者在PHP 7.4环境中遇到过同样的问题?
- 这个情况会不会是Google PHP客户端库的特定版本兼容性问题导致的?
- 除了我已经做的,还有哪些故障排查步骤可以尝试?
非常感谢各位的指导。
我的代码示例
<?php require_once 'vendor/autoload.php'; // 通过HTTPS POST获取前端传来的id_token $CLIENT_ID = 'token-xxx-xxx-xxx-xx-000.apps.googleusercontent.com'; $id_token = $_POST['credential']; $client = new Google_Client(['client_id' => $CLIENT_ID]); $payload = $client->verifyIdToken($id_token); // 这里无法得到有效结果 echo file_get_contents('https://oauth2.googleapis.com/tokeninfo?id_token='.$id_token); // 这个请求能正常返回验证信息 echo var_dump($payload); // 输出false if ($payload) { //$userid = $payload['sub']; // 如果请求指定了G Suite域名: //$domain = $payload['hd']; } else { // 判定为无效ID token } ?>
已完成的排查操作
- 确认使用的Client ID完全正确
- 尝试捕捉并检查了代码中的错误信息和异常
- 验证了
$payload变量的返回值(确实是false) - 检查了服务器与Google服务器之间的网络通信状态
内容的提问来源于stack exchange,提问作者Moses Henen
相关产品推荐
相关产品推荐

