自动登录和退出

本页介绍了如何实现与用户使用 Google 一键快捷功能登录或退出账号的方式相关的功能。

自动登录用户

Google One Tap 支持自动登录,可免去用户返回您的网站时必须执行的手动步骤,从而提供顺畅的用户体验 (UX)。用户无需记住上次访问时选择的 Google 账号,从而减少在您的平台上创建不必要的重复账号的可能性。

自动登录旨在补充“使用 Google 账号登录”按钮和一键快捷对话框。它旨在用于整个网站,只有在用户首次从您的网站退出账号后,才会发生手动注册或切换账号的情况。

如需实现自动登录,必须满足以下条件:

  • 用户必须先登录自己的 Google 账号,然后
  • 之前曾同意与您的应用分享其账号个人资料,并且
  • 使用 FedCM 时,在过去 10 分钟内仅尝试过一次登录。 如果在此时间段内多次尝试登录,系统会显示“一键登录”提示。
  • 使用 FedCM 时,即使在 FedCM 推出之前用户已批准该网站,Chrome 仍要求用户在每个 Chrome 实例中重新确认是否要使用 Google 账号登录该网站。此变更可能会影响您使用一键登录功能的现有网站上的转化率。在 Chrome M121 更新中,自动登录改进可缓解转化率下降问题。

对于启用了自动登录功能的网页,如果满足这些条件,系统会自动返回用户的 ID 令牌凭据,而无需用户进行任何互动。如果不满足这些条件,即使网页上启用了自动登录,用户也会默认使用一键式流程进行登录或同意。如果用户有多个 Google 账号,则在访问您的网站时,必须先登录其中一个 Google 账号,并针对该账号提供同意声明。

您可以使用返回的凭据对象的 select_by 字段中的 auto 值来衡量自动登录成功率。

如需启用自动登录,请将 data-auto_select="true" 添加到您的代码中,如以下代码段所示:

<div id="g_id_onload"
     data-client_id="YOUR_GOOGLE_CLIENT_ID"
     data-login_uri="https://your.domain/your_login_endpoint"
     data-auto_select="true">
</div>

退出账号

当用户从您的网站上退出时,系统可将他们引导至一个会自动显示 Google 一键快捷功能的页面。对于此设置,必须禁止自动选择。否则,系统会自动让用户重新登录,从而导致死循环的用户体验。

使用 FedCM

为改善用户体验,每次自动登录尝试之间有 10 分钟的静默期。在此时间段内,系统会显示“一键登录”提示。用户需要明确点击“一键快捷功能”才能登录。

不使用 FedCM

如需禁止在用户退出登录后自动选择账号,请将类名称 g_id_signout 添加到所有退出登录链接和按钮。请参阅以下代码段:

<div class="g_id_signout">Sign Out</div>

以下 JavaScript 代码段也可用于退出登录:

const button = document.getElementById('signout_button');
button.onclick = () => {
  google.accounts.id.disableAutoSelect();
}

为了防止出现死循环的用户体验,用户已退出登录状态会存储在由 Google Identity Services 库设置的名为 g_state 的 Cookie 中。默认情况下,Cookie 网域设置为当前网页的网域。如果父网域和子网域上都显示“一键快捷功能”,则状态 Cookie 必须在您的所有网域中都可见。使用 data-state_cookie_domain 属性将 g_state cookie 网域设置为父网域。例如,为父网域 example.com 和名为 webapp.example.com 的子网域向 g_id_onload 元素添加 data-state_cookie_domain="example.com"

如果您有监控网域中使用的所有 Cookie 的服务,则需要将 g_state Cookie 通知给该服务。

如果您不想在登录后页面上加载客户端库,请使用以下解决方案来防止在用户退出登录后出现死循环的用户体验:

  • 在用户退出登录时,将用户重定向到不显示一键登录的网页(例如 https://example.com/logged_out),或始终停用自动登录的网页。
  • 在退出时,向网址添加一个参数。例如 logged_out=1。通过 JavaScript API 渲染一键快捷功能时,检查网址参数,并在存在时停用自动登录。

关键用户体验历程

自动登录页面。

使用 FedCM

FedCM 自动登录弹窗

用户可以点击 X 按钮关闭“一键快捷功能”提示。出于无障碍考虑,即使在用户点击 X 按钮的情况下,系统也会与您的网站分享 ID 令牌。

为改善用户体验,每次自动登录尝试之间有 10 分钟的静默期。在此时间段内,系统会显示“一键登录”提示。用户需要明确点击“一键快捷功能”才能登录。

不使用 FedCM

自动登录弹出式窗口示例。

如果用户未在 5 秒内点击取消按钮,系统会将 ID 令牌分享给您的网站。

当登录被取消时,系统会根据有效的 Google 会话数显示账号选择器页面或回访用户页面。

  • 多个 Google 会话

账号选择器页面示例

  • 单次 Google 会话

“一键快捷功能”回访用户页面