2015-04-06 47 views
1

我正在尝试使用谷歌终端交叉客户端身份验证。在我的Android客户端,我成功地获得授权令牌使用我的服务器:谷歌终端交叉客户端身份验证

String plusLogin = Scopes.PLUS_LOGIN; 
String mScopes = "oauth2:" + plusLogin; 

String token = GoogleAuthUtil.getToken(context, Constants.accountName, mScopes); 

那么我访问所需的终结点在的AsyncTask任务,并通过此令牌服务器。现在...我在服务器端有这个令牌,但我不知道我需要做什么来解码来自int的用户信息。基本上我有兴趣在服务器端获取用户ID和用户电子邮件。

确实,我是这个新手,但我挣扎了2周以上。 有关它的Google文档仅指向您必须遵循的方向,但没有可用作模型的工作示例。 https://developers.google.com/+/web/signin/server-side-flow

回答

0

我认为您无法解码Google API服务器向您的应用提供的令牌的任何用户信息,因为这些令牌是由Google API服务器向您的应用发送的令牌。它是由Google API服务器向您的应用程序发送的一次性令牌,然后您的应用程序将其发送到您的服务器以从Google Server获取刷新令牌。所有这些令牌都是加密签名的由Google签名的JWT(Jason Web令牌) ,你不能解码这些令牌。

另外,您提供的文档是针对Google+ API的,它们有一些示例代码,用于说明如何在您的项目中实现一次性代码的功能[1]。

[1] https://developers.google.com/+/quickstart/

+0

所以对于流中的下一步骤是:1.交换该令牌用于刷新令牌。 2.访问https://www.googleapis.com/userinfo/v2/me api并以json格式获取用户详细信息。我只找到如何做到这一点的android,javascript的例子,但不是在服务器端的纯java的例子。谁能帮忙? – 2015-04-06 20:33:55