使用 Google 登入 HTML API 參考資料

本參考頁面說明「使用 Google 帳戶登入」HTML 資料屬性 API,用於在網頁上顯示「使用 Google 帳戶登入」按鈕或 One Tap 提示。

ID 為「g_id_onload」的元素

您可以將「使用 Google 帳戶登入」資料屬性,放在任何可見或不可見的元素中,例如 <div> 和 <span>。唯一的要求是將元素 ID 設為 g_id_onload。請勿將這個 ID 套用至多個元素。

資料屬性

下表列出資料屬性及其說明:

屬性
data-client_id 應用程式的用戶端 ID
data-color_scheme One Tap 提示套用的色彩配置。
data-auto_prompt 顯示 Google One Tap。
data-auto_select 啟用 Google One Tap 的自動選取功能。
data-login_uri 登入端點的網址
data-callback JavaScript ID 權杖處理常式函式名稱
data-native_login_uri 密碼憑證處理常式端點的網址
data-native_callback JavaScript 密碼憑證處理常式函式名稱
data-native_id_param credential.id 值的參數名稱
data-native_password_param credential.password 值的參數名稱
data-cancel_on_tap_outside 控管使用者點選提示以外的區域時,是否要取消提示。
data-prompt_parent_id 一鍵登入提示容器元素的 DOM ID
data-skip_prompt_cookie 如果指定 Cookie 的值並非空白,則略過一鍵登入。
data-nonce ID 權杖的隨機字串
data-essential_claims 要納入 Google 傳回的 ID 權杖中的其他要求。
data-context One Tap 提示中的標題和文字
data-moment_callback 提示 UI 狀態通知監聽器的函式名稱
data-state_cookie_domain 如需在上層網域及其子網域中呼叫 One Tap,請將上層網域傳遞至這個屬性,以便使用單一共用 Cookie。
data-ux_mode 「使用 Google 帳戶登入」按鈕使用者體驗流程
data-allowed_parent_origin 允許嵌入中繼 iframe 的來源。如果這個屬性存在,一鍵登入功能就會在中間 iframe 模式下執行。
data-intermediate_iframe_close_callback 覆寫使用者手動關閉一鍵登入時,預設的中繼 iframe 行為。
data-itp_support 在 ITP 瀏覽器上啟用升級版一鍵登入使用者體驗。
data-login_hint 提供使用者提示,略過帳戶選取步驟。
data-hd 依網域限制帳戶選取。
data-use_fedcm_for_prompt 允許瀏覽器控制使用者登入提示,並在網站和 Google 之間協調登入流程。
data-use_fedcm_for_button 這個欄位會決定是否要在 Chrome (電腦版 M125 以上版本和 Android 版 M128 以上版本) 使用 FedCM 按鈕使用者體驗。預設值為 false。
data-button_auto_select 是否為 FedCM 按鈕流程啟用自動選取選項。啟用後,如果回訪者有有效的 Google 工作階段,系統會自動登入,略過帳戶選擇工具提示。預設值為 false。

屬性類型

以下各節將詳細說明各個屬性類型,並提供範例。

data-client_id

這個屬性是應用程式的用戶端 ID,可在 Google Cloud 控制台中找到及建立。詳情請參閱下表:

類型 必填 範例
字串 是 data-client_id="CLIENT_ID.apps.googleusercontent.com"

data-color_scheme

這個欄位是套用至一鍵登入提示的色彩配置。詳情請參閱下表:

類型 必填 範例
字串 (選用步驟) 預設為使用者系統的預設色彩配置。 data-color_scheme="dark"

下表列出可用的色彩配置和說明。

色彩配置
default 根據使用者偏好設定,套用使用者系統的預設色彩配置 (淺色或深色)。
light 套用淺色色彩配置。
dark 套用深色色彩配置。

data-auto_prompt

這項屬性決定是否要顯示一鍵登入。預設值為 true。如果這個值為 false,系統就不會顯示 Google One Tap。詳情請參閱下表:

類型 必填 範例
布林值 選用 data-auto_prompt="true"

data-auto_select

如果只有一個 Google 工作階段核准您的應用程式,這個屬性會決定是否要在使用者不進行任何互動的情況下,自動傳回 ID 權杖。預設值為 false。詳情請參閱下表:

類型 必填 範例
布林值 選用 data-auto_select="true"

data-login_uri

這個屬性是登入端點的 URI。

這個值必須與您在 Google Auth Platform 中設定的 OAuth 2.0 用戶端授權重新導向 URI 完全相符,且必須符合我們的重新導向 URI 驗證規則。

如果目前網頁是登入網頁,則可省略這個屬性,在這種情況下,憑證預設會發布至這個網頁。

如果未定義回呼函式,且使用者點選「使用 Google 帳戶登入」或「一鍵登入」按鈕,或自動登入,系統會將 ID 權杖憑證回應發布至登入端點。

登入端點必須處理 POST 要求,其中包含 credential 參數,且主體中含有 ID 權杖值。

詳情請參閱下表:

類型 選用 範例
網址 預設為目前網頁的 URI,或您指定的值。
如果已設定 data-ux_mode="popup" 和 data-callback,系統會忽略這個屬性。
data-login_uri="https://www.example.com/login"

data-callback

這個屬性是 JavaScript 函式的名稱,用於處理傳回的 ID 權杖。詳情請參閱下表:

類型 必填 範例
字串 如果未設定 data-login_uri,則為必要欄位。 data-callback="handleToken"

可以使用 data-login_uri 和 data-callback 屬性之一。這取決於下列元件和使用者體驗模式設定:

  • 「使用 Google 帳戶登入」按鈕 redirect UX 模式需要 data-login_uri 屬性,並會忽略 data-callback 屬性。

  • 您必須為 Google One Tap 和 Google 登入按鈕 popup UX 模式設定這兩個屬性之一。如果兩者皆已設定,系統會優先採用 data-callback 屬性。

HTML API 不支援命名空間中的 JavaScript 函式。請改用不含命名空間的全域 JavaScript 函式。例如,使用 mylibCallback,而非 mylib.callback。

回呼函式會傳遞 CredentialResponse 物件做為參數。如要進一步瞭解可能的回應值,請參閱 CredentialResponse。

data-native_login_uri

這個屬性是密碼憑證處理常式端點的網址。如果您設定 data-native_login_uri 屬性或 data-native_callback 屬性,JavaScript 程式庫會在沒有 Google 工作階段時,改用內建的 Credential Manager。您無法同時設定 data-native_callback 和 data-native_login_uri 屬性。詳情請參閱下表:

類型 必填 範例
字串 選用 data-login_uri="https://www.example.com/password_login"

data-native_callback

這個屬性是 JavaScript 函式的名稱,用於處理瀏覽器內建 Credential Manager 傳回的密碼憑證。如果設定 data-native_login_uri 屬性或 data-native_callback 屬性,JavaScript 程式庫會在沒有 Google 工作階段時,改用內建的 Credential Manager。您無法同時設定 data-native_callback 和 data-native_login_uri。詳情請參閱下表:

類型 必填 範例
字串 選用 data-native_callback="handlePasswordCredential"

HTML API 不支援命名空間中的 JavaScript 函式。請改用不含命名空間的全域 JavaScript 函式。例如,使用 mylibCallback,而非 mylib.callback。

data-native_id_param

將密碼憑證提交至密碼憑證處理常式端點時,您可以指定 credential.id 欄位的參數名稱。預設名稱為 email。詳情請參閱下表:

類型 必填 範例
網址 選用 data-native_id_param="user_id"

data-native_password_param

將密碼憑證提交至密碼憑證處理常式端點時,您可以指定 credential.password 值的參數名稱。預設名稱為 password。詳情請參閱下表:

類型 必填 範例
網址 選用 data-native_password_param="pwd"

data-cancel_on_tap_outside

這項屬性會設定當使用者點選提示以外的區域時,是否要取消一鍵登入要求。預設值為 true。如要停用,請將值設為 false。詳情請參閱下表:

類型 必填 範例
布林值 選用 data-cancel_on_tap_outside="false"

data-prompt_parent_id

這項屬性會設定容器元素的 DOM ID。如未設定,一鍵登入提示會顯示在視窗右上角。詳情請參閱下表:

類型 必填 範例
字串 選用 data-prompt_parent_id="parent_id"

使用 Cookie 控制一鍵登入提示的顯示。如果這個屬性指定的 Cookie 值不為空白,系統就不會顯示提示。詳情請參閱下表:

類型 必填 範例
字串 選用 data-skip_prompt_cookie="SID"

data-nonce

這項屬性是 ID 權杖使用的隨機字串,可防止重送攻擊。詳情請參閱下表:

類型 必填 範例
字串 選用 data-nonce="biaqbm70g23"

Nonce 長度上限取決於環境支援的最大 JWT 大小,以及個別瀏覽器和伺服器的 HTTP 大小限制。

data-essential_claims

這個屬性是字串,用於要求在 Google 傳回的 ID 權杖中加入額外要求。如要查看 Google 接受的完整聲明清單,請參閱支援的聲明。

詳情請參閱下表:

類型 必填 範例
字串 選用 data-essential_claims="auth_time, amr"

data-context

這個欄位會變更一鍵登入提示中顯示的標題和訊息文字,但不會影響 ITP 瀏覽器。預設值為 signin。

詳情請參閱下表:

類型 必填 範例
字串 選用 data-context="use"

下表列出所有可用的情境和說明:

背景資訊
signin 「登入」
signup 「註冊」
use 「使用」

data-moment_callback

這個屬性是提示 UI 狀態通知事件監聽器的函式名稱。詳情請參閱資料類型 PromptMomentNotification。

詳情請參閱下表:

類型 必填 範例
字串 選用 data-moment_callback="logMomentNotification"

HTML API 不支援命名空間中的 JavaScript 函式。請改用不含命名空間的全域 JavaScript 函式。例如,使用 mylibCallback,而非 mylib.callback。

如需在上層網域及其子網域中顯示一鍵登入,請將上層網域傳遞至這個屬性,以便使用單一共用狀態 Cookie。詳情請參閱下表:

類型 必填 範例
字串 選用 data-state_cookie_domain="example.com"

data-ux_mode

這項屬性會設定「使用 Google 帳戶登入」按鈕使用的使用者體驗流程。預設值為 popup。這個屬性不會影響一鍵登入使用者體驗。詳情請參閱下表:

類型 必填 範例
字串 選用 data-ux_mode="redirect"

下表列出可用的使用者體驗模式和說明。

使用者體驗模式
popup 在彈出式視窗中執行登入使用者體驗流程。
redirect 透過全頁重新導向執行登入使用者體驗流程。

data-allowed_parent_origin

允許嵌入中繼 iframe 的來源。如果出現這個屬性,一鍵登入功能會在中繼 iframe 模式下執行。詳情請參閱下表:

類型 必填 範例
字串或字串陣列 選用 data-allowed_parent_origin="https://example.com"

下表列出支援的值類型和說明。

值類型
string 單一網域 URI。 "https://example.com"
string array 以半形逗號分隔的網域 URI 清單。 "https://news.example.com,https://local.example.com"

如果 data-allowed_parent_origin 屬性的值無效,中繼 iframe 模式的一鍵初始化作業會失敗並停止。

也支援萬用字元前置字串。例如,"https://*.example.com" 會比對 example.com 及其所有層級的子網域 (例如 news.example.com、login.news.example.com)。使用萬用字元時,請注意下列事項:

  • 模式字串不得僅由萬用字元和頂層網域組成。舉例來說,https://.com 和 https://.co.uk 無效,因為 "https://.example.com" 與 example.com 及其所有子網域相符。請使用逗號分隔的清單來代表兩個不同的網域。例如,"https://example1.com,https://.example2.com" 會比對網域 example1.com、example2.com 和 example2.com 的子網域
  • 萬用字元網域開頭必須是安全的 https:// 配置,因此 "*.example.com" 視為無效。

data-intermediate_iframe_close_callback

當使用者輕觸一鍵登入 UI 中的「X」按鈕,手動關閉一鍵登入時,覆寫預設的中繼 iframe 行為。預設行為是立即從 DOM 中移除中介 iframe。

data-intermediate_iframe_close_callback 欄位僅在中繼 iframe 模式下生效。而且只會影響中介 iframe,而非一鍵登入 iframe。系統會在叫用回呼前移除一鍵登入 UI。

類型 必填 範例
函式 選用 data-intermediate_iframe_close_callback="logBeforeClose"

HTML API 不支援命名空間中的 JavaScript 函式。請改用不含命名空間的全域 JavaScript 函式。例如,使用 mylibCallback,而非 mylib.callback。

data-itp_support

這個欄位會決定是否要在支援智慧防追蹤 (ITP) 的瀏覽器上,啟用升級版一鍵登入使用者體驗。預設值為 false。詳情請參閱下表:

類型 必填 範例
布林值 選用 data-itp_support="false"

data-login_hint

如果應用程式事先知道應登入的使用者,可以向 Google 提供登入提示。如果成功,系統會略過帳戶選取步驟。可接受的值包括:電子郵件地址或 ID 權杖 sub 欄位。

詳情請參閱 login_hint 的 OpenID Connect 說明文件。

類型 必填 範例
字串。可以是電子郵件地址或 ID 權杖中的 sub 欄位值。 選用 data-login_hint="elisa.beckett@gmail.com"

data-hd

如果使用者有多個帳戶,但只能使用 Workspace 帳戶登入,請使用這項設定向 Google 提供網域名稱提示。如果成功,帳戶選取畫面中顯示的使用者帳戶,會限定為所提供網域的帳戶。萬用字元值:* 只會向使用者提供 Workspace 帳戶,並在選取帳戶時排除消費者帳戶 (user@gmail.com)。

詳情請參閱 hd 的 OpenID Connect 說明文件。

類型 必填 範例
字串。完整網域名稱或 *。 選用 data-hd="*"

data-use_fedcm_for_prompt

允許瀏覽器控制使用者登入提示,並在網站和 Google 之間協調登入流程。預設值為 false。詳情請參閱「遷移至 FedCM」頁面。

類型 必填 範例
布林值 已淘汰 data-use_fedcm_for_prompt="true"

data-use_fedcm_for_button

這個欄位會決定是否要在 Chrome (電腦版 M125 以上版本和 Android M128 以上版本) 使用 FedCM 按鈕使用者體驗。預設值為 false。詳情請參閱下表:

類型 必填 範例
布林值 選用 data-use_fedcm_for_button="true"

data-button_auto_select

這個欄位會決定是否為 FedCM 按鈕流程啟用自動選取選項。啟用後,如果回訪者有有效的 Google 工作階段,系統會自動將他們登入,略過帳戶選擇工具提示。預設為 false。您必須在選擇加入啟動期間,明確啟用按鈕自動登入功能。詳情請參閱下表:

類型 必填 範例
布林值 選用 data-button_auto_select="true"

類別為「g_id_signin」的元素

如果將 g_id_signin 新增至元素的 class 屬性,元素會轉譯為「使用 Google 帳戶登入」按鈕。

您可以在同一個網頁上顯示多個「使用 Google 帳戶登入」按鈕。每個按鈕都可以有自己的視覺設定。設定由下列資料屬性定義。

視覺資料屬性

下表列出影像資料屬性和說明:

屬性
data-type 按鈕類型:圖示或標準按鈕。
data-theme 按鈕主題。例如 filled_blue 或 filled_black。
data-size 按鈕大小。例如:小或大。
data-text 按鈕文字。例如「使用 Google 帳戶登入」或「使用 Google 帳戶註冊」。
data-shape 按鈕形狀。例如矩形或圓形。
data-logo_alignment Google 標誌對齊方式:靠左或置中。
data-width 按鈕寬度 (以像素為單位)。
data-locale 按鈕文字會以這項屬性設定的語言顯示。
data-click_listener 如果設定,系統會在使用者點選「使用 Google 帳戶登入」按鈕時呼叫這個函式。
data-state 如果設定,這個字串會與 ID 權杖一起傳回。

屬性類型

以下各節將詳細說明各個屬性的類型,並提供範例。

data-type

按鈕類型。預設值為 standard。詳情請參閱下表:

類型 必填 範例
字串 是 data-type="icon"

下表列出所有可用的按鈕類型及其說明:

類型
standard
含有文字或個人化資訊的按鈕。
icon
沒有文字的圖示按鈕。

data-theme

按鈕主題。預設值為 outline。詳情請參閱下表:

類型 必填 範例
字串 選用 data-theme="filled_blue"

下表列出可用的主題和說明:

主題 範例 規格
outline
standard-button-white icon-button-white personalized-button-white
標準按鈕主題。
填滿:#FFFFFF
筆劃:#747775 | 1 像素 | 內部
字型:#1F1F1F | Roboto Medium | 14/20
個人化:#1F1F1F | Roboto | Medium 12/14 | Regular 11/13
filled_blue
藍色填滿按鈕主題。
填滿:#0B57D0
筆劃:#OB57D0 | 1 像素 | 內側
字型:#FFFFFF | Google Sans Medium | 14/20
個人化:#FFFFFF | Roboto | Medium 12/14 | Regular 11/13
filled_black
黑色按鈕主題,搭配對比色標誌。
填滿:#202124
筆劃:#OB57D0 | 1px | 內側
字型:#FFFFFF | Google Sans Medium | 14/20
個人化:#FFFFFF | Roboto | Medium 12/14 | Regular 11/13
outline_dark
黑色填滿按鈕主題。
填滿:#131314
筆劃:#8E918F | 1 像素 | 內部
字型:#FFFFFF | Google Sans Medium | 14/20
個人化:#FFFFFF | Roboto | Medium 12/14 | Regular 11/13

data-size

按鈕大小。預設值為 large。詳情請參閱下表:

類型 必填 範例
字串 選用 data-size="small"

下表列出可用的按鈕大小和說明。

大小
large
大型標準按鈕 大型圖示按鈕 大型個人化按鈕
大型按鈕。
medium
中型標準按鈕 中型圖示按鈕
中型按鈕。
small
小型登入按鈕 小型圖示按鈕
小型按鈕。

data-text

按鈕文字。預設值為 signin_with。具有不同 data-text 屬性的圖示按鈕文字,在視覺上沒有差異。唯一的例外是為螢幕無障礙功能朗讀文字。

詳情請參閱下表:

類型 必填 範例
字串 選用 data-text="signup_with"

下表列出可用的按鈕文字和說明:

文字
signin_with
標示「使用 Google 帳戶登入」的標準按鈕 沒有顯示文字的圖示按鈕
按鈕文字為「使用 Google 帳戶登入」。
signup_with
標示「使用 Google 帳戶註冊」的標準按鈕 沒有顯示文字的圖示按鈕
按鈕文字為「使用 Google 帳戶註冊」。
continue_with
標示「使用 Google 帳戶繼續」的標準按鈕 沒有顯示文字的圖示按鈕
按鈕文字為「使用 Google 帳戶繼續」。
signin
標示「登入」的標準按鈕 沒有顯示文字的圖示按鈕
按鈕文字為「登入」。

data-shape

按鈕形狀。預設值為 rectangular。詳情請參閱下表:

類型 必填 範例
字串 選用 data-shape="rectangular"

下表列出可用的按鈕形狀和說明:

圖案
rectangular
矩形標準按鈕 矩形圖示按鈕 矩形個人化按鈕
矩形按鈕。如果用於 icon 按鈕類型,則與 square 相同。
pill
膠囊狀標準按鈕 膠囊形圖示按鈕 膠囊形個人化按鈕
藥丸形按鈕。如果用於 icon 按鈕類型,則與 circle 相同。
circle
圓形標準按鈕 圓形圖示按鈕 圓形個人化按鈕
圓形按鈕。如果用於 standard 按鈕類型,則與 pill 相同。
square
正方形標準按鈕 正方形圖示按鈕 正方形個人化按鈕
正方形按鈕。如果用於 standard 按鈕類型,則與 rectangular 相同。

data-logo_alignment

Google 標誌的對齊方式。預設值為 left。這個屬性僅適用於 standard 按鈕類型。詳情請參閱下表:

類型 必填 範例
字串 選用 data-logo_alignment="center"

下表列出可用的對齊方式和說明:

logo_alignment
left
左側有 G 標誌的標準按鈕
將 Google 標誌靠左對齊。
center
標準按鈕,中間有 G 標誌
將 Google 標誌置中對齊。

data-width

按鈕寬度下限 (以像素為單位)。寬度上限為 400 像素。

詳情請參閱下表:

類型 必填 範例
字串 選用 data-width=400

data-locale

(選用步驟) 使用指定語言代碼顯示按鈕文字,否則預設為使用者的 Google 帳戶或瀏覽器設定。載入程式庫時,請在 src 指令中加入 hl 參數和語言代碼,例如:gsi/client?hl=<iso-639-code>。

如未設定,系統會使用瀏覽器的預設語言代碼或 Google 工作階段使用者的偏好設定。因此,不同使用者可能會看到不同版本的本地化按鈕,且大小可能不同。

詳情請參閱下表:

類型 必填 範例
字串 選用 data-locale="zh_CN"

data-click_listener

您可以使用 data-click_listener 屬性,定義點選「使用 Google 帳戶登入」按鈕時要呼叫的 JavaScript 函式。

  <script>
    function onClickHandler(){
      console.log("Sign in with Google button clicked...")
    }
  </script>
  .....
  <div class="g_id_signin"
      data-size="large"
      data-theme="outline"
      data-click_listener="onClickHandler">
  </div>

在這個範例中,當使用者點選「使用 Google 帳戶登入」按鈕時,系統會將「Sign in with Google button clicked...」訊息記錄到控制台。

data-state

選用:由於同一個頁面可以顯示多個「使用 Google 帳戶登入」按鈕,因此您可以為每個按鈕指派專屬字串。系統會傳回相同的字串和 ID 權杖,方便您識別使用者點選了哪個按鈕登入。

詳情請參閱下表:

類型 必填 範例
字串 選用 data-state="button 1"

伺服器端整合

伺服器端端點必須處理下列 HTTP POST 要求。

ID 權杖處理常式端點

ID 權杖處理常式端點會處理 ID 權杖。根據對應帳戶的狀態,您可以將使用者登入,並將他們導向註冊頁面,或導向帳戶連結頁面,以取得其他資訊。用戶端必須忽略無法辨識的回應參數。

傳送至登入端點的要求範例:

POST /login HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: g_csrf_token=<RANDOM_STRING>
Host: www.example.com

credential=<JWT_ENCODED_ID_TOKEN>&g_csrf_token=<RANDOM_STRING>

HTTP POST 要求包含下列資訊:

格式 名稱 說明
Cookie g_csrf_token 每次向 data-login_uri 指定的登入端點發出要求時,都會變更的隨機字串,必須與 g_csrf_token 要求參數中的值相符。
要求參數 g_csrf_token 隨機字串,每次向 data-login_uri 指定的登入端點發出要求時都會變更,且必須與 g_csrf_token Cookie 的值相符。
要求參數 credential Google 核發的編碼 JWT ID 權杖。
要求參數 state 只有在使用者點選「使用 Google 帳戶登入」按鈕登入,且按鈕的 state 屬性已指定時,系統才會定義這個參數。

憑證

解碼後,ID 權杖會如下所示:

header
{
  "alg": "RS256",
  "kid": "f05415b13acb9590f70df862765c655f5a7a019e", // JWT signature
  "typ": "JWT"
}
payload
{
  "iss": "https://accounts.google.com", // The JWT's issuer
  "nbf":  161803398874,
  "aud": "314159265-pi.apps.googleusercontent.com", // Your server's client ID
  "sub": "3141592653589793238", // The unique ID of the user's Google Account
  "hd": "gmail.com", // If present, the host domain of the user's Google Workspace email address
  "auth_time": 1748875426,
  "amr": ["mfa", "pwd", "tel"],
  "email": "elisa.g.beckett@gmail.com", // The user's email address
  "email_verified": true, // true, if Google has verified the email address
  "azp": "314159265-pi.apps.googleusercontent.com",
  "name": "Elisa Beckett",
                            // If present, a URL to user's profile picture
  "picture": "https://lh3.googleusercontent.com/a-/e2718281828459045235360uler",
  "given_name": "Eliza",
  "family_name": "Beckett",
  "iat": 1596474000, // Unix timestamp of the assertion creation time
  "exp": 1596477600, // Unix timestamp of the assertion expiration time
  "jti": "abc161803398874def"
}

用戶端必須忽略無法辨識的 JWT 宣告。

sub 欄位是 Google 帳戶的全域專屬 ID。只能使用 sub 欄位做為使用者 ID,因為該欄位在所有 Google 帳戶中都是不重複的,且絕不重複使用。

您可以使用 email、email_verified 和 hd 欄位,判斷 Google 是否託管電子郵件地址,且具有該地址的授權。如果 Google 具有權威性,則會確認使用者是合法的帳戶擁有者。

Google 具有權威性的情況:

  • email 的後置字串為 @gmail.com,這是 Gmail 帳戶。
  • email_verified 為 true 且已設定 hd,這是 Google Workspace 帳戶。

使用者可以註冊 Google 帳戶,不一定要使用 Gmail 或 Google Workspace。 如果 email 不含 @gmail.com 尾碼,且沒有 hd,則 Google 不是授權機構,建議使用密碼或其他驗證方法來驗證使用者。email_verified 也可能為 true,因為 Google 最初在建立 Google 帳戶時已驗證使用者,但第三方電子郵件帳戶的擁有權可能已變更。

exp 欄位會顯示您在伺服器端驗證權杖的到期時間。如果是透過「使用 Google 帳戶登入」功能取得的 ID 權杖,則為一小時。您必須在到期前驗證權杖。請勿使用 exp 管理工作階段。ID 權杖過期不代表使用者已登出。應用程式負責管理使用者的工作階段。

g_csrf_token

防偽狀態權杖。這是由 gsi/client 程式庫建立的跨網站要求偽造 (CSRF) 權杖。POST 酬載主體中包含隨機值,同時做為 Cookie 和要求參數。如果伺服器處理要求時,這兩個值不相符,則應視為無效要求。

州

只有在使用者點選「使用 Google 帳戶登入」按鈕登入,且已指定所點選按鈕的 data-state 屬性時,系統才會定義這個參數。這個欄位的值與您在按鈕的 data-state 屬性中指定的值相同。

由於同一個網頁上可以顯示多個「使用 Google 帳戶登入」按鈕,因此您可以為每個按鈕指派專屬字串。因此,您可以使用這個 state 參數,找出使用者點選哪個按鈕登入。

密碼憑證處理常式端點

密碼憑證處理常式端點會處理內建 Credential Manager 擷取的密碼憑證。

HTTP POST 要求包含下列資訊:

格式 名稱 說明
Cookie g_csrf_token 每次向 data-native_login_uri 指定的登入端點發出要求時,都會變更的隨機字串,必須與 g_csrf_token 要求參數中的值相符。
要求參數 g_csrf_token 隨機字串,每次向 data-native_login_uri 指定的登入端點發出要求時都會變更,且必須與 g_csrf_token Cookie 的值相符。
要求參數 email Google 核發的 ID 權杖。
要求參數 password 憑證的選取方式。