所以这可能会成为一个新问题。
我正在使用PHP开发REST(ful)JSON应用程序编程接口。此API将主要由Android设备通过应用程序访问。由于只有拥有G +帐户的人才会使用此应用程序,因此我想使用Google API进行用户身份验证。到目前为止,这么简单。
但是我第一次使用GoogleAPI并且阅读了有趣且需要的部分Google API DevDocs。所以我找到了我现在正在使用的 google-api-php-client 。
以下是我认为此验证过程的工作原理:
"access_token":"1/fFAGRNJru1FTz70BzhT3Zg",
"expires_in":3920,
"token_type":"Bearer"
GET /meeting/:id
,并发送access_token(仅限1/fFAGRNJru1FTz70BzhT3Zg
)。googleAPI/people/me
询问用户的ID。但是上面提到的Google-lib for PHP存在问题:
函数setAccessToken($accessToken)
需要整个JSON响应,因为文档说:
{"access_token":"TOKEN",
"refresh_token":"TOKEN",
"token_type":"Bearer",
"expires_in":3600,
"id_token":"TOKEN",
"created":1320790426}
(请参阅here)对GoogleAPI的身份验证请求。
在每次请求时,无法将id_token,refresh_token和access_token的整个JSON响应发送到我的API,因为这会导致大量流量并且我确定有一个简单的解决方案,但我没有看到它。
我希望我能正确解释我的想法和问题,我希望我的英语不是那么糟糕。
答案 0 :(得分:1)
我刚刚解决了这个问题。
id_token足以识别用户。当Android应用程序发送带有id_token的请求时,服务器可以向谷歌询问其身份。
在 google-api-php-client 中,这适用于:
$id_token = $_GET['id_token'];
$client = new Google_Client();
$attr = $client->verifyIdToken($id_token)->getAttributes();
echo $attr['payload']['sub'];
我在Google API Docs中找到了这个内容(还有#34;推荐流程" -description)并且在问题中mentioned link之一的帮助下。