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;
}

来自文档的额外信息

openidconnect documentation