如何验证用户ios与谷歌加帐户唱歌?服务器端

时间:2015-07-27 11:15:56

标签: ios authentication login google-plus google-signin

我在ios应用程序中构建了一个登录按钮。我已经按照这个documentation

我的ios应用程序的登录工作非常好。我成功收到了auth对象:

{accessToken="***********", refreshToken="*****", code="*******", expirationDate="2015-07-27 11:00:07 +0000"}

我也成功获得了一次授权代码

[GPPSignIn sharedInstance].homeServerAuthorizationCode;

现在该怎么办。根据该文档,我应该将homeServerAuthorizationCode发送到我的服务器。然后用访问令牌交换它。但它没有提到我怎么能做到这一点。

我发现了这篇文章https://developers.google.com/identity/sign-in/web/server-side-flow,但它只描述了如何获取访问令牌。它没有显示如何做到这一点!

在我成功检索令牌之后。如何调用google plus api。例如,检索用户配置文件?

1 个答案:

答案 0 :(得分:0)

首先您必须在项目中安装Google客户端软件包

"google/apiclient": "^2.0.0@RC"

然后,从您的IOS授权阵列,您可以找到" server_code":" **********" 。从这个服务器代码,你可以从服务器端获得新的身份验证结果(acees_token,refresh_token,expire等)。请通过以下代码

 $redirect_uri = 'http://******/gplusresponse';
  $client = new Google_Client();
 $client->setClientId('YOUR_CLIENT_ID');
 $client->setClientSecret('YOUR_CLIENT_SECRET');
 $client->setRedirectUri($redirect_uri);
 $client->setAccessType("offline");
 $client->setScopes(array(
     'https://www.googleapis.com/auth/plus.me',
     'https://www.googleapis.com/auth/plus.stream.write'    
 ));

 $token=$client->authenticate(YOUR_SERVER_CODE);
print_r($token);

它将显示一个新的令牌结果数组

{ "access_token": "*******************", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "***************", "id_token": "***************" }

现在,您可以通过将url en point中的访问令牌作为GET

提供来验证用户
https://www.googleapis.com/plus/v1/people/me/?access_token=YOUR_NEW_ACCESS_TOKEN

结果将显示授权的用户个人资料。