我的应用程序中的用户正在连接其Gmail帐户。我有一个功能,可以使他们断开连接,然后在完全删除集成及其关联的所有数据之前,可以重新连接。我正在使用OAuth 2身份验证方法。
当前,当我向Google进行身份验证时,将显示登录屏幕,并且如果该用户具有多个Gmail登录名,那么所有登录名都将显示给用户以供选择。
如果用户选择的电子邮件与他们选择的电子邮件不同,则会在我的系统中造成冲突。对于这种特定情况,我需要为他们选择该电子邮件。这可能吗?
答案 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;
}