自動登入及登出

本頁面說明如何實作使用者使用 Google One Tap 登入或登出的功能。

自動登入使用者

Google One Tap 支援自動登入,可移除訪客返回網站時必須採取的手動步驟,以提供順暢的使用者體驗 (UX)。使用者不必記住上次造訪時選取了哪個 Google 帳戶,可降低平台上建立不必要重複帳戶的可能性。

自動登入功能旨在與「使用 Google 帳戶登入」按鈕和「輕觸一次」對話方塊相輔相成。此機制適用於整個網站,而手動註冊或切換帳戶只有在使用者首次登出網站後才會發生。

如要自動登入,必須符合下列條件:

  • 使用者必須先登入自己的 Google 帳戶
  • 先前已同意與您的應用程式分享帳戶設定檔。

針對已啟用自動登入功能的網頁,如果符合這些條件,系統就會自動傳回訪客 ID 憑證憑證,不需要與使用者互動。如果不符合上述條件,即使網頁上已啟用自動登入功能,使用者仍將預設為「一觸即通」流程,用於登入或取得同意聲明。如果使用者擁有多個 Google 帳戶,並造訪您的網站, 則需要先登入單一 Google 帳戶,並為該帳戶提供同意聲明。

您可以使用所傳回憑證物件的 select_by 欄位中的 auto 值,來測量自動登入成功率。

如要啟用自動登入功能,請在程式碼中加入 data-auto_select="true",如以下程式碼片段所示:

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

登出

使用者登出網站時,系統會將他們導向自動顯示 Google One Tap 提示的網頁。使用這項設定時,您必須禁止自動選取。否則,使用者會再次登入,導致死結使用者體驗。

如要在使用者登出後禁止自動選取,請在所有登出連結和按鈕中加入類別名稱 g_id_signout。請參閱下列程式碼片段:

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

以下的 JavaScript 程式碼片段也可用來登出:

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

因此,系統會透過您網域的 Cookie 記錄已登出的狀態,避免使用者重複註冊 UX。

登出狀態會儲存在您網域的 g_state Cookie 中。如果您的服務會監控網域中使用的所有 Cookie,您必須通知相關 Cookie。

如果您不想在登入後載入用戶端程式庫,可以使用以下一些簡單的解決方法,以免使用者登出時就出現循環迴圈。

  • 登出後,系統會將使用者重新導向至未顯示 (輕觸一次的 https://example.com/logged_out) 的網頁,或一律停用自動登入。
  • 登出後,在網址中加入參數。例如:logged_out=1。轉譯 One Tap by JavaScript API 時,請檢查該網址參數,並在停用自動登入功能 (如果有的話)。

關鍵使用者旅程

  1. 自動登入網頁。

    自動登入彈出式視窗。

  2. 如果您未在 5 秒內按一下 [取消] 按鈕,系統就會將您的網站 ID 憑證與您的網站共用。

  3. 當登入活動取消時,系統會根據帳戶選擇頁面或回訪者頁面,根據有效的 Google 工作階段數量。

    • 多個 Google 工作階段

      帳戶選擇頁面

    • 單一 Google 工作階段

      One Tap 回訪者頁面