【发布时间】:2014-03-31 09:38:44
【问题描述】:
所以这可能是一个新问题。
我正在使用 PHP 开发一个 REST(ful) JSON 应用程序编程接口。此 API 将主要由 Android 设备通过应用程序访问。由于只有拥有 G+ 帐户的人才会使用这个应用程序,所以我想使用 Google API 进行用户身份验证。到目前为止,一切都很简单。
但我是第一次使用 GoogleAPI,我阅读了 Google API DevDocs 中有趣且需要的部分。所以我找到了我现在正在使用的 google-api-php-client。
这是我认为此身份验证过程的工作原理:
- 用户在移动设备上登录 G+Account(或类似设备;我读过一些有关 PlayStore ID 令牌或 here 的内容)
- 该应用程序现在确实有一个令牌(如所述here(响应))
"access_token":"1/fFAGRNJru1FTz70BzhT3Zg", "expires_in":3920, "token_type":"Bearer" - Android-App 向我的 PHP API 发送请求,例如
GET /meeting/:id,并发送 access_token(仅限1/fFAGRNJru1FTz70BzhT3Zg)。 - 我的应用可以获取 access_token 并可以向
googleAPI/people/me询问用户的 ID。 - 在我的 API 的请求中识别出用户,然后魔法可以继续进行
但是上面提到的 PHP 的 Google-lib 有一个问题:
正如文档所说,函数 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 不可能是解决方案,因为这会导致大量流量,我确信有一个简单的解决方案,但是没看到。
我希望我能正确地解释我的想法和问题,我希望我的英语没有那么糟糕。
【问题讨论】:
标签: php android google-api google-api-php-client