4

token-id从 google 生成的客户端 android 应用程序收到。
如何授权用户使用社交名流?
我现在正在使用 google_api 客户端,但它没有 Socialte 的便利。

4

3 回答 3

3

如果您可以获得服务器身份验证代码,则可以将其交换为 accessToken 并使用它来查询 Google+ API。

就我而言,我使用的是cordova库

https://github.com/EddyVerbruggen/cordova-plugin-googleplus

这将为您(如果配置为“离线”)提供serverAuthCode

您可以将其发送到您的服务器。然后,要将其转换为 accessToken,您可以调用此社交名流方法:

$driver = Socialite::driver($provider); // provider is 'google' here
$access_token = $driver->getAccessToken($serverAuthCode);

然后您可以使用此令牌获取用户信息:

$socialUser = $driver->userFromToken($access_token);

只是想帮助其他为此苦苦挣扎的人。

于 2016-12-28T07:24:29.837 回答
3

使用 PHP Google API 客户端库

首先通过composer安装库

$ 作曲家需要 google/apiclient

$client = new Google_Client(['client_id' => env('Google_CLIENT_ID')]);  // Specify the CLIENT_ID of the app that accesses the backend
$payload = $client->verifyIdToken($id_token);
if ($payload) {
  $userid = $payload['sub'];
  // If request specified a G Suite domain:
  //$domain = $payload['hd'];
} else {
  // Invalid ID token
}

有关更多详细信息,请检查

https://developers.google.com/identity/sign-in/android/backend-auth?authuser=2

于 2020-08-15T00:28:52.303 回答
0

如果你想获取用户信息,你必须使用 accessToken(有时需要 openid)来获取它,最近我做了一个 laravel 包来完成这个请求,检查这里:

https://github.com/Ray-Cheng/laravel-socialite-api

于 2016-01-07T15:24:38.010 回答