Php 谷歌登录,用户已经登录后如何获取谷歌用户ID服务器端?

Php 谷歌登录,用户已经登录后如何获取谷歌用户ID服务器端?,php,api,server-side,google-oauth,Php,Api,Server Side,Google Oauth,嗨,这是史上第一个问题 我已经习惯了Facebook连接,我正在实现谷歌登录我的网站。 用户可以连接他们的FB或Google+帐户(客户端javascript API),我在数据库中创建一个用户配置文件并存储他们的FB UId或G+UId。没问题 现在当他们回来的时候。。。通过FacebookAPI,我可以轻松地使用他们的php API获取当前用户Id$facebook->getUser(),以便从数据库中检索用户配置文件 使用Google+我可以很容易地通过javascript API(gap

嗨,这是史上第一个问题

我已经习惯了Facebook连接,我正在实现谷歌登录我的网站。 用户可以连接他们的FB或Google+帐户(客户端javascript API),我在数据库中创建一个用户配置文件并存储他们的FB UId或G+UId。没问题

现在当他们回来的时候。。。通过FacebookAPI,我可以轻松地使用他们的php API获取当前用户Id$facebook->getUser(),以便从数据库中检索用户配置文件

使用Google+我可以很容易地通过javascript API(gapi.auth.authorize)获得G+UID客户端,但是如何在服务器端实现同样的功能而不要求离线访问授权呢


谢谢你的帮助

至少有两种方法可以做到这一点

如果您有授权代码(不需要脱机访问请求“代码”响应类型),则可以调用令牌端点并在反向通道中获取id_令牌。Base64解码令牌将为您提供用户\u id。此方法不要求您验证id\u令牌中的签名,因为您正在直接向安全(受TLS/HTTPS保护的)Google处理程序进行服务器端调用

否则,您可以请求“id\U令牌”响应,然后执行完整的id\U令牌验证。这需要检查Google签名,并确保id_令牌已颁发给您的应用程序(将您的客户端id与id_令牌的“aud”参数匹配)

这一策略在:(第一种方法)中有更详细的解释 (第二种方法)


第一种方法更容易实现,第二种方法更有效(不需要网络往返)。

第一种方法:这意味着我需要将从初始请求返回的授权代码保留在我的数据库中?