我已经从Try Sign-in for Android下载了项目,在 Google API 控制台上创建了项目。我已成功配置signin
项目并在模拟器中运行应用程序。我将 OAuth Web 客户端 ID 粘贴到strings.xml
. 然后打开这个IdTokenActivity
得到了idToken
。
我将此令牌复制并使用 POSTMAN 创建请求到我的服务器http://localhost/api/googlesignin/hello
在服务器上我有这个代码:
public function hello(Request $request)
{
$idToken = $request->get('idToken');
$client = new \Google_Client([
'client_id' => '[SAME CLIENT ID AS THE ONE IN STRINGS.XML]'
]);
$payload = $client->verifyIdToken($idToken);
var_dump($payload)
}
但这返回FALSE
意味着它无法验证$idToken
。但是像这样使用端点令牌验证:
https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={$idToken}
返回状态码 200 和有关此用户的所有信息。
我不知道为什么 GoogleClient 无法验证令牌?我是否使用了错误的客户 ID?
编辑:我找到了问题的根源:我不小心粘贴了两次 ClientID:
'client_id' => 'client-id-tokenclient-id-token'
-.-