我从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'
-.-