如何验证Google身份验证访问令牌?
我需要以某种方式查询Google并询问:[给定的访问令牌]是否对[example@example.com] Google帐户有效?
简短版本:
很明显,如何通过Google身份验证Api ::用于Web应用程序的OAuth身份验证提供的访问令牌可以用于从一系列Google服务中请求数据。目前尚不清楚如何检查给定的访问令牌对于给定的Google帐户是否有效。我想知道如何。
较长版本:
我正在开发使用基于令牌的身份验证的API。在提供有效的用户名+密码或从N个可验证服务中的任何一个提供第三方令牌后,将返回令牌。
谷歌是第三方服务之一,它允许用户使用其Google帐户针对我的服务进行身份验证。以后将扩展到包括Yahoo帐户,受信任的OpenID提供程序等。
基于Google的访问的示意图示例:
替代文字http://webignition.net/images/figures/auth_figure002.png
“ API”实体在我的完全控制之下。“公共界面”实体是任何基于Web或桌面的应用程序。有些公共接口在我的控制之下,另一些则不会,而另一些我可能永远都不知道。
因此,我无法信任在步骤3中提供给API的令牌。该令牌将与相应的Google帐户电子邮件地址一起提供。
我需要以某种方式查询Google并询问:此访问令牌是否对example@example.com有效?
在这种情况下,example @ example.com是Google帐户的唯一标识符-某人用来登录其Google帐户的电子邮件地址。不能假定此地址为Gmail地址-某人可以拥有一个Google帐户而没有一个Gmail帐户。
Google文档明确说明了如何使用访问令牌从许多Google服务中检索数据。似乎没有任何内容说明您如何首先检查给定的访问令牌是否有效。
更新 令牌对N个Google服务有效。我无法尝试针对Google服务使用令牌作为验证令牌的方式,因为我不知道给定用户实际使用的所有Google服务的子集。
此外,我绝不会使用Google身份验证访问令牌来访问任何Google服务,仅是一种验证假定的Google用户实际上是他们所说的身份的一种方式。如果还有另一种方法,我很乐意尝试。