Google 身份服务 - 保持登录状态

Google Identity Services - stay signed in

我正在从 Google 登录平台库迁移到 the new Google Identity Services 一键登录,但网站会在用户刷新或转到其他网站时自动注销页。

这是加载一键登录的每个页面上的代码:

<div id="g_id_onload"
     data-client_id="[CLIENT ID]"
     data-callback="onSignIn"
     data-auto_select="true">
</div>

删除它只会让用户注销,无法重新登录。There is a cookie, g_state, that stores the user's login,以及根据弹出窗口的存在显示弹出窗口的属性,但使用它也会让用户注销无法重新登录。

有什么方法可以防止刷新时自动注销吗?

设置一个 cookie 来跟踪用户登录您网站的状态应该可以做到。

需要注意的几点:

  • 您的回调处理程序将管理用户的登录或注销状态,此处 OnSignIn
  • data-skip_prompt_cookie 设置的 cookie 名称用于 suppress One Tap 用户成功登录到您的网站后 - 您已经正确登录,所以不要再用一键提示来打扰我了。因此,在有人访问任何页面并登录后,您将发出一个 cookie,以便在加载下一个页面时不显示一次点击。当他们退出您的网站时,您希望清除此 cookie。
  • data-skip_prompt_cookie 可帮助您控制何时在使用静态 HTML 时显示一键,在使用 JS 时您可以通过调用 google.accounts.id.prompt 或跳过调用它并显示一次点击。
  • 完全避免使用或引用 g_state,它目前有助于管理如何显示 UI,并且不打算用作尝试和跟踪登录或会话状态的手段.相反,使用您自己的 cookie 和 data-skip_prompt_cookie.
  • 跟踪用户登录