Google API:我可以使用 PHP 客户端验证特定用户吗?
Google API: Can I authenticate a specific user with PHP Client?
我的应用程序中的用户正在连接他们的 Gmail 帐户。我有一个功能,允许他们断开连接,然后在完全删除集成和与之相关的所有数据之前,他们可以重新连接。我正在使用 OAuth 2 身份验证方法。
目前,当我使用 Google 进行身份验证时,会显示登录屏幕,如果该用户有多个 Gmail 登录名,那么它们都会显示给用户以供选择。
如果用户选择的电子邮件与他们之前选择的不同,这会在我的系统中造成冲突。对于这种特定情况,我需要为他们选择该电子邮件。这可能吗?
无法 100% 确保他们将使用相同的电子邮件地址登录,但是您可以添加
$client->setLoginHint('[Users email here]');
这将鼓励他们使用该电子邮件登录,因为弹出 window 他们必须 select 一个 google 帐户只会显示那个。这将要求您保存上次的电子邮件。
function buildClient(){
$client = new Google_Client();
$client->setAccessType("offline"); // offline access. Will result in a refresh token
$client->setIncludeGrantedScopes(true); // incremental auth
$client->setAuthConfig(__DIR__ . '/client_secrets.json');
$client->addScope([YOUR SCOPES HERE]);
$client->setLoginHint('[Users email here]');
$client->setRedirectUri(getRedirectUri());
return $client;
}
来自文档的额外信息
我的应用程序中的用户正在连接他们的 Gmail 帐户。我有一个功能,允许他们断开连接,然后在完全删除集成和与之相关的所有数据之前,他们可以重新连接。我正在使用 OAuth 2 身份验证方法。
目前,当我使用 Google 进行身份验证时,会显示登录屏幕,如果该用户有多个 Gmail 登录名,那么它们都会显示给用户以供选择。
如果用户选择的电子邮件与他们之前选择的不同,这会在我的系统中造成冲突。对于这种特定情况,我需要为他们选择该电子邮件。这可能吗?
无法 100% 确保他们将使用相同的电子邮件地址登录,但是您可以添加
$client->setLoginHint('[Users email here]');
这将鼓励他们使用该电子邮件登录,因为弹出 window 他们必须 select 一个 google 帐户只会显示那个。这将要求您保存上次的电子邮件。
function buildClient(){
$client = new Google_Client();
$client->setAccessType("offline"); // offline access. Will result in a refresh token
$client->setIncludeGrantedScopes(true); // incremental auth
$client->setAuthConfig(__DIR__ . '/client_secrets.json');
$client->addScope([YOUR SCOPES HERE]);
$client->setLoginHint('[Users email here]');
$client->setRedirectUri(getRedirectUri());
return $client;
}