本頁面說明如何實作與使用者使用 Google One Tap 登入或登出相關的功能。
自動登入使用者
Google One Tap 支援自動登入功能,能夠移除訪客返回網站時必須採取的手動步驟,提供順暢的使用者體驗。使用者不必記住上次造訪時選取的 Google 帳戶,就能避免在平台上建立不必要的重複帳戶。
自動登入旨在搭配「使用 Google 帳戶登入」按鈕和 One Tap 對話方塊。這項功能適用於整個網站,只有在使用者首次登出網站後,才會手動註冊或切換帳戶。
您必須符合下列條件,才能使用自動登入功能:
- 使用者必須先登入 Google 帳戶,且
- 先前已同意與應用程式共用帳戶個人資料。
- 使用 FedCM 時,過去 10 分鐘內只會嘗試一次登入。 如果在此期間嘗試多次登入,系統會顯示一次輕觸。
針對已啟用自動登入功能的網頁,只要符合這些條件,系統就會自動傳回訪客 ID 權杖憑證,使用者不需要進行任何互動。如未符合這些條件,且已在網頁上啟用自動登入功能,使用者會預設使用 One Tap 流程進行登入或表示同意。如果使用者擁有多個 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 One Tap 提示的網頁。採用這項設定時,您必須禁止自動選取。否則,使用者會自動再次登入,導致無法循環的使用者體驗。
使用 FedCM
為改善使用者體驗,每次嘗試自動登入時,系統都會經過 10 分鐘的靜止時間。在這段期間,系統會改為顯示「One Tap」。
未使用 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();
}
因此,系統會透過網域中的 Cookie 記錄登出狀態,避免發生無效迴圈使用者體驗。
登出狀態會儲存在你網域的 g_state
Cookie 中。如果您的服務會監控網域中使用的所有 Cookie,您必須將這個 Cookie 通知這些人員。
如果您不想在登入後頁面載入用戶端程式庫,請使用下列解決方案,避免在登出後發生當機循環的使用者體驗:
- 登出時,將使用者重新導向至未顯示 One Tap 或一律停用自動登入的網頁 (例如
https://example.com/logged_out
)。 - 登出時,將參數新增至網址。例如:
logged_out=1
。轉譯 One Tap by JavaScript API 時,請檢查網址參數,如果有,就會停用自動登入功能。
主要使用者歷程
自動登入頁面。
使用 FedCM

如果使用者未在 5 秒內點選「X」取消,系統就會將 ID 權杖提供給您的網站。
未使用 FedCM

如果使用者未在 5 秒內點選「取消」按鈕,系統就會將 ID 權杖提供給您的網站。
當登入遭到取消時,系統會根據有效的 Google 工作階段數量,顯示帳戶選擇工具頁面或回訪使用者頁面。
多個 Google 工作階段
使用 FedCM
未使用 FedCM
單一 Google 工作階段
使用 FedCM
未使用 FedCM