使用 PHP API 库以 Google 登录
Login with Google using PHP API library
我已经下载了 Google API PHP 我正在用 "log in with Google" script.every 试用它,我认为我工作正常。但我也想要密码字段,以保存我的数据库以作为我的门户网站的普通用户进一步登录。
我使用了以下代码:
$service = new Google_Service_Oauth2($client);
if ($client->getAccessToken())
{
//For logged in user, get details from google using access token
$user = $service->userinfo->get();
$user_id = $user['id'];}
//list all user details
echo '<pre>';
print_r($user);
echo '</pre>';
$user 的输出是:
Google_Service_Oauth2_Userinfoplus Object
(
[internal_gapi_mappings:protected] => Array
(
[familyName] => family_name
[givenName] => given_name
[verifiedEmail] => verified_email
)
[email] => example@gmail.com
[familyName] => man
[gender] => male
[givenName] => deadman
[hd] =>
[id] => 123456789012345
[link] => https://plus.google.com/101978174620808672845
[locale] => en-GB
[name] => dead man
[picture] => https://******************/photo.jpg
[verifiedEmail] => 1
[modelData:protected] => Array
(
[verified_email] => 1
[given_name] => dead
[family_name] => man
)
[processed:protected] => Array
(
)
)
如何从 google 获取密码字段?
您无法在 google 身份验证或任何其他社交身份验证中获取用户的密码字段。这是为了用户安全。控制台中有一个 callback url
选项。如果 google 登录已通过身份验证,用户将被重定向到 url。
Google 登录的全部意义在于让您不要 为用户存储密码。用户能够使用他们的 Google 凭据访问您的站点 - Google 正在为您验证他们并告诉您用户是谁。 (请记住,Google 身份验证甚至可能不涉及您存储的密码。如果用户设置了双因素身份验证,则不涉及密码。)
如果您想让您的用户在没有 Google 帐户的情况下登录您的站点,或者除了他们的 Google 帐户外,您可能还想提示他们输入密码 用于您的站点,但这完全在 Google 的身份验证系统之外。
如果您认为需要密码才能访问 Google 上的用户信息 - 您不需要。对于大多数服务,您应该使用 OAuth 2,它为您和您的用户提供了一种更安全的方式来管理您可以使用 Google 的服务做什么。
我已经下载了 Google API PHP 我正在用 "log in with Google" script.every 试用它,我认为我工作正常。但我也想要密码字段,以保存我的数据库以作为我的门户网站的普通用户进一步登录。 我使用了以下代码:
$service = new Google_Service_Oauth2($client);
if ($client->getAccessToken())
{
//For logged in user, get details from google using access token
$user = $service->userinfo->get();
$user_id = $user['id'];}
//list all user details
echo '<pre>';
print_r($user);
echo '</pre>';
$user 的输出是:
Google_Service_Oauth2_Userinfoplus Object
(
[internal_gapi_mappings:protected] => Array
(
[familyName] => family_name
[givenName] => given_name
[verifiedEmail] => verified_email
)
[email] => example@gmail.com
[familyName] => man
[gender] => male
[givenName] => deadman
[hd] =>
[id] => 123456789012345
[link] => https://plus.google.com/101978174620808672845
[locale] => en-GB
[name] => dead man
[picture] => https://******************/photo.jpg
[verifiedEmail] => 1
[modelData:protected] => Array
(
[verified_email] => 1
[given_name] => dead
[family_name] => man
)
[processed:protected] => Array
(
)
)
如何从 google 获取密码字段?
您无法在 google 身份验证或任何其他社交身份验证中获取用户的密码字段。这是为了用户安全。控制台中有一个 callback url
选项。如果 google 登录已通过身份验证,用户将被重定向到 url。
Google 登录的全部意义在于让您不要 为用户存储密码。用户能够使用他们的 Google 凭据访问您的站点 - Google 正在为您验证他们并告诉您用户是谁。 (请记住,Google 身份验证甚至可能不涉及您存储的密码。如果用户设置了双因素身份验证,则不涉及密码。)
如果您想让您的用户在没有 Google 帐户的情况下登录您的站点,或者除了他们的 Google 帐户外,您可能还想提示他们输入密码 用于您的站点,但这完全在 Google 的身份验证系统之外。
如果您认为需要密码才能访问 Google 上的用户信息 - 您不需要。对于大多数服务,您应该使用 OAuth 2,它为您和您的用户提供了一种更安全的方式来管理您可以使用 Google 的服务做什么。