Google API:我可以使用PHP客户端对特定用户进行身份验证吗?

时间:2020-03-02 13:29:35

标签: php google-api-php-client

我的应用程序中的用户正在连接其Gmail帐户。我有一个功能,可以使他们断开连接,然后在完全删除集成及其关联的所有数据之前,可以重新连接。我正在使用OAuth 2身份验证方法。

当前,当我向Google进行身份验证时,将显示登录屏幕,并且如果该用户具有多个Gmail登录名,那么所有登录名都将显示给用户以供选择。

如果用户选择的电子邮件与他们选择的电子邮件不同,则会在我的系统中造成冲突。对于这种特定情况,我需要为他们选择该电子邮件。这可能吗?

1 个答案:

答案 0 :(得分:1)

无法100%确保他们将使用相同的电子邮件地址登录,但是您可以添加

    $client->setLoginHint('[Users email here]');

这将鼓励他们使用该电子邮件登录,因为他们必须选择一个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

enter image description here