本參考頁面說明 Sign-In JavaScript API。您可以使用這個 API ,藉此在網頁上顯示「One Tap 提示」或「使用 Google 帳戶登入」按鈕。
方法:google.accounts.id.initialize
google.accounts.id.initialize
方法會將「使用 Google 帳戶登入」功能初始化
建立新的 Pod 執行個體請查看以下
方法:
google.accounts.id.initialize(IdConfiguration)
以下程式碼範例實作 google.accounts.id.initialize
方法
取代為 onload
函式:
<script>
window.onload = function () {
google.accounts.id.initialize({
client_id: 'YOUR_GOOGLE_CLIENT_ID',
callback: handleCredentialResponse
});
google.accounts.id.prompt();
};
</script>
google.accounts.id.initialize
方法會建立「使用 Google 帳戶登入」用戶端
執行個體,可供相同網頁中的所有模組間接使用。
- 您只需要呼叫
google.accounts.id.initialize
方法一次 如果您使用了多個模組 (例如 One Tap、個人化按鈕、撤銷 等)。 - 如果多次呼叫
google.accounts.id.initialize
方法 系統只會記住並使用最後呼叫中的設定。
其實每次呼叫
google.accounts.id.initialize
方法,且所有後續方法都具有相同的
立即改用新設定
資料類型:IdConfiguration
下表列出 IdConfiguration
的欄位和說明
資料類型:
欄位 | |
---|---|
client_id |
應用程式的用戶端 ID |
auto_select |
啟用自動選取功能。 |
callback |
處理 ID 權杖的 JavaScript 函式。Google One Tap 和
「使用 Google 帳戶登入」按鈕 popup 使用者體驗模式都會使用這個
屬性。 |
login_uri |
登入端點的網址。「使用 Google 帳戶登入」按鈕
redirect 使用者體驗模式會使用這項屬性。 |
native_callback |
處理密碼憑證的 JavaScript 函式。 |
cancel_on_tap_outside |
如果使用者點選提示以外的畫面,則取消提示。 |
prompt_parent_id |
One Tap 提示容器元素的 DOM ID |
nonce |
ID 權杖的隨機字串 |
context |
One Tap 提示中的標題和字詞 |
state_cookie_domain |
如果您需要在上層網域及其子網域中呼叫 One Tap, 傳遞上層網域到這個欄位,讓一個共用 Cookie 可以 |
ux_mode |
「使用 Google 帳戶登入」按鈕的使用者體驗流程 |
allowed_parent_origin |
允許嵌入中繼 iframe 的來源。輕觸一下 如有這個欄位,就會在中繼 iframe 模式執行。 |
intermediate_iframe_close_callback |
在使用者手動時覆寫預設的中繼 iframe 行為 關閉「One Tap」。 |
itp_support |
在 ITP 瀏覽器中啟用升級版 One Tap 使用者體驗。 |
login_hint |
提供使用者提示,略過帳戶選取程序。 |
hd |
依網域限制帳戶選取範圍。 |
use_fedcm_for_prompt |
允許瀏覽器控管使用者的登入提示並中介服務 登入流程 |
client_id
這個欄位是應用程式的用戶端 ID;您可以在 存取 Google Cloud 控制台詳情請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
字串 | 是 | client_id: "CLIENT_ID.apps.googleusercontent.com" |
auto_select
這個欄位會決定在沒有使用者的情況下,自動傳回 ID 權杖
(應用程式僅透過一個 Google 工作階段獲得核准)
。預設值為 false
。詳情請參閱下表
每個 ACL 都由一或多個項目組成
而這些項目包含兩項資訊
類型 | 必填 | 範例 |
---|---|---|
布林值 | 選用 | auto_select: true |
callback
這個欄位是一個 JavaScript 函式,會處理其傳回的 ID 權杖
One Tap 提示或彈出式視窗如果 Google
使用 One Tap 或「使用 Google 帳戶登入」按鈕 popup
使用者體驗模式。詳情請參閱
請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
函式 | 必須啟用 One Tap 和 popup 使用者體驗模式 |
callback: handleResponse |
login_uri
這個屬性就是您登入端點的 URI。
這個值必須與其中一個授權的 OAuth 重新導向 URI 完全相符 2.0 用戶端 (您已設定) 且必須符合我們的重新導向 URI 驗證 規則。
如果目前的頁面是登入頁面,可以省略這項屬性, 在此情況下,憑證會預設為張貼在此頁。
當使用者有使用者時,ID 權杖憑證回應會發布到您的登入端點 接著按一下「使用 Google 帳戶登入」按鈕,然後重新導向使用者體驗模式。
詳情請參閱下表:
類型 | 選用 | 範例 |
---|---|---|
網址 | 預設為目前網頁的 URI 或您指定的值。 只有在已設定 ux_mode: "redirect" 的情況下才能使用。 |
login_uri: "https://www.example.com/login" |
您的登入端點必須處理內含
credential
鍵,其中包含
內文中的 ID 權杖值。
以下是向登入端點發出的要求範例:
POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
credential=ID_TOKEN
native_callback
這個欄位是處理密碼的 JavaScript 函式名稱。 瀏覽器的原生憑證管理員傳回的憑證。詳情請參閱 請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
函式 | 選用 | native_callback: handleResponse |
cancel_on_tap_outside
這個欄位會設定當使用者點選時,是否取消 One Tap 要求
。預設值為 true
。您可以停用此功能
設為 false
。詳情請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
布林值 | 選用 | cancel_on_tap_outside: false |
prompt_parent_id
這項屬性可以設定容器元素的 DOM ID。如未設定, 視窗右上角會顯示一觸提示。詳情請參閱 請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | prompt_parent_id: 'parent_id' |
Nonce
這個欄位是 ID 權杖使用的隨機字串,用於防範重播攻擊。 詳情請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | nonce: "biaqbm70g23" |
Nonce 長度會受限於環境支援的 JWT 大小上限。 以及個別瀏覽器和伺服器的 HTTP 大小限制
context
這個欄位會變更 One Tap 提示中的標題和訊息文字。詳情請見 請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | context: "use" |
下表列出所有可用的背景資訊及其說明:
脈絡 | |
---|---|
signin |
「使用 Google 帳戶登入」 |
signup |
註冊 Google |
use |
「與 Google 搭配使用」 |
state_cookie_domain
如果您需要在上層網域及其子網域中顯示 One Tap,請將 上層網域到這個欄位,才能只使用一個共用狀態 Cookie。詳情請見 請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | state_cookie_domain: "example.com" |
ux_mode
使用這個欄位設定「使用 Google 帳戶登入」按鈕所用的使用者體驗流程。預設值為 popup
。這項屬性不會影響 OneTap 使用者體驗。詳情請參閱
請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | ux_mode: "redirect" |
下表列出可用的使用者體驗模式及其說明。
使用者體驗模式 | |
---|---|
popup |
在彈出式視窗中執行登入使用者體驗流程。 |
redirect |
透過完整頁面重新導向執行登入使用者體驗流程。 |
allowed_parent_origin
允許嵌入中繼 iframe 的來源。One Tap 跑步 在中繼 iframe 模式中 (如果有的話)。請參閱以下資訊 表格,進一步瞭解詳情:
類型 | 必填 | 範例 |
---|---|---|
字串或字串陣列 | 選用 | allowed_parent_origin: "https://example.com" |
下表列出支援的值類型及其說明。
值類型 | ||
---|---|---|
string |
單一網域 URI。 | "https://example.com" |
string array |
網域 URI 陣列。 | ["https://news.example.com", "https://local.example.com"] |
系統也支援萬用字元前置字元。例如:"https://*.example.com"
比對所有層級的 example.com
及其子網域 (例如
news.example.com
、login.news.example.com
)。使用
萬用字元:
- 模式字串不能僅由萬用字元和頂層組成
網域。舉例來說,
https://.com
和https://
.co.uk
無效;如上所述,"https://.example.com"
比對example.com
及其子網域。您也可以使用 陣列,代表 2 個不同的網域。例如:["https://example1.com", "https://
.example2.com"]
個相符的項目example1.com
、example2.com
和example2.com
的子網域 - 萬用字元網域的開頭必須是安全的 https:// 配置,
系統會將
"*.example.com"
視為無效。
如果「allowed_parent_origin
」欄位的值無效,則 One Tap
中繼 iframe 模式的初始化作業會失敗並停止。
intermediate_iframe_close_callback
在使用者手動關閉 One 時覆寫預設的中繼 iframe 行為 輕觸「X」即可輕觸一下按鈕。預設行為是 立即從 DOM 中移除中繼 iframe。
intermediate_iframe_close_callback
欄位僅會在中繼中生效
iframe 模式。它只會影響中繼 iframe,而非
一鍵顯示 iframe。系統會在叫用回呼前移除 One Tap UI。
類型 | 必填 | 範例 |
---|---|---|
函式 | 選用 | intermediate_iframe_close_callback: logBeforeClose |
itp_support
這個欄位會決定
升級版 One Tap 使用者體驗
瀏覽器必須啟用智慧型追蹤防範機制
(ITP)。預設值為 false
。詳情請參閱下表
每個 ACL 都由一或多個項目組成
而這些項目包含兩項資訊
類型 | 必填 | 範例 |
---|---|---|
布林值 | 選用 | itp_support: true |
login_hint
如果應用程式事先知道應登入哪個使用者, 向 Google 提供登入提示。成功後,系統會略過帳戶選取作業。 接受的值如下:電子郵件地址或 ID 權杖 sub 欄位值。
詳情請參閱 OpenID Connect 中的 login_hint 欄位 說明文件。
類型 | 必填 | 範例 |
---|---|---|
字串、電子郵件地址或 ID 權杖中的值
「sub 」欄位。 |
選用 | login_hint: 'elisa.beckett@gmail.com' |
HD 高畫質
如果使用者擁有多個帳戶,且只應使用 Workspace 登入
帳戶會使用這項資訊將網域名稱提示提供給 Google。如果成功的話,使用者
帳戶選取時只會顯示在提供的網域內。
萬用字元值「*
」只會為使用者提供 Workspace 帳戶,且不含
個人帳戶 (<使用者>@gmail.com)。
詳情請參閱 OpenID Connect 說明文件中的 hd 欄位。
類型 | 必填 | 範例 |
---|---|---|
字串。完整網域名稱或 *。 | 選用 | hd: '*' |
use_fedcm_for_prompt
允許瀏覽器控管使用者的登入提示及啟動登入流程 你的網站和 Google 之間的關聯預設值為 false。請參閱遷移至 FedCM 頁面。
類型 | 必填 | 範例 |
---|---|---|
布林值 | 選用 | use_fedcm_for_prompt: true |
方法:google.accounts.id.prompt
google.accounts.id.prompt
方法會顯示 One Tap 提示或
。initialize()
請參閱下列方法的程式碼範例:
google.accounts.id.prompt(/**
@type{(function(!PromptMomentNotification):void)=} */ momentListener)
一般來說,載入網頁時會呼叫 prompt()
方法。課程結束
那麼,One Tap 提示使用者介面可能並未
高度。如要取得不同時間點的 UI 狀態通知,請傳送
函式來接收 UI 狀態通知。
通知會在下列時機觸發:
- 顯示時刻:呼叫
prompt()
方法後就會發生此情況。 通知包含一個布林值,指出使用者介面 不一定會顯示 略過的時刻:如果 One Tap 提示自動關閉,便會顯示這類提示 取消、手動取消或 Google 無法核發憑證的情況,例如 系統就會傳送快訊通知
在這種情況下,建議您繼續透過下一個身分識別 軟體供應商 (如果有的話)
已關閉的時刻:如果 Google 成功擷取 或使用者想要停止憑證擷取流程。適用對象 例如,使用者開始在 登入對話方塊,您可以呼叫
google.accounts.id.cancel()
方法來關閉 One Tap 提示並觸發關閉時機
以下程式碼範例會實作略過的時刻:
<script>
window.onload = function () {
google.accounts.id.initialize(...);
google.accounts.id.prompt((notification) => {
if (notification.isNotDisplayed() || notification.isSkippedMoment()) {
// continue with another identity provider.
}
});
};
</script>
資料類型:PromptMomentNotification
下表列出
PromptMomentNotification
資料類型:
方法 | |
---|---|
isDisplayMoment() |
這則通知是要顯示螢幕時間嗎? 注意: 如果 FedCM 符合下列條件, 啟用,則不會觸發這則通知。詳情請見 遷移至 FedCM 頁面。 |
isDisplayed() |
這則通知是顯示畫面時間,而 UI 是
出現? 注意: 如果 FedCM 符合下列條件, 啟用,則不會觸發這則通知。詳情請見 遷移至 FedCM 頁面。 |
isNotDisplayed() |
這則通知是顯示時間,且 UI 不是
出現? 注意: 如果 FedCM 符合下列條件, 啟用,則不會觸發這則通知。詳情請見 遷移至 FedCM 頁面。 |
getNotDisplayedReason() |
未顯示 UI 的詳細原因。以下是 可能的值:
|
isSkippedMoment() |
這則通知是暫時略過的嗎? |
getSkippedReason() |
略過時刻的詳細原因。以下是 可能的值:
|
isDismissedMoment() |
這則通知是關於已關閉的時刻嗎? |
getDismissedReason() |
詳細原因。可能的情況如下: 值:
|
getMomentType() |
傳回時刻類型的字串。可能的情況如下: 值:
|
資料類型:CredentialResponse
叫用 callback
函式時,會有一個 CredentialResponse
物件
再以參數的形式傳送下表為
中:
欄位 | |
---|---|
credential |
這個欄位是傳回的 ID 權杖。 |
select_by |
這個欄位會設定憑證的選取方式, |
state |
這個欄位只有在使用者點選「使用 Google 帳戶登入」功能時才會定義
登入按鈕,以及按鈕的「state 」
屬性。 |
憑證
這個欄位是採用 Base64 編碼 JSON Web Token (JWT) 字串的 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 GSuite email address "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": "Elisa", "family_name": "Beckett", "iat": 1596474000, // Unix timestamp of the assertion's creation time "exp": 1596477600, // Unix timestamp of the assertion's expiration time "jti": "abc161803398874def" }
sub
欄位是 Google 帳戶的全域專屬 ID。只有
使用 sub
欄位做為使用者的 ID,因為該欄位在所有 Google 服務中都不重複
且永不重複使用。不要使用電子郵件地址做為 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_verfied
也可能是 Google 最初驗證過的網站
使用者,不過第三項擁有權
卻可能有所變更。
exp
欄位會顯示到期時間,供您在
伺服器端。一小時
取得從「使用 Google 帳戶登入」功能取得的 ID 符記。您需要驗證
憑證
讓應用程式從可以最快做出回應的位置
回應使用者要求請勿將 exp
用於管理工作階段。過期的 ID 權杖
「不」代表使用者已登出。您的應用程式負責工作階段
來管理使用者
select_by
下表列出 select_by
欄位的可能值。
與工作階段和同意聲明狀態搭配使用的按鈕類型
值
使用者按下 One Tap 或「使用 Google 帳戶登入」按鈕,或使用 不必接觸式自動登入程序
找到現有的工作階段,或使用者選取並登入 建立新的工作階段。
與應用程式使用者共用 ID 權杖憑證前
- 按下「確認」按鈕同意共用憑證, 或
- 先前曾授予同意聲明,並使用「選取帳戶」選擇 Google 帳戶。
這個欄位的值已設為這裡的其中之一
值 | 說明 |
---|---|
auto |
自動登入已採用現有工作階段的使用者 先前表示同意共用憑證。僅適用於 非 FedCM 支援的瀏覽器。 |
user |
既有工作階段已授予同意聲明的使用者 按下 One Tap 的「以下列身分繼續」按鈕,點選即可共用憑證。適用 僅適用於非 FedCM 的瀏覽器。 |
fedcm |
使用者按下 One Tap 的「以下列身分繼續」按鈕用於分享的按鈕 取得憑證僅適用於 FedCM 支援 。 |
fedcm_auto |
自動登入已採用現有工作階段的使用者 先前已同意透過 FedCM One Tap 分享憑證。 僅適用於 FedCM 支援 。 |
user_1tap |
目前已有工作階段的使用者按下 One Tap [以下列身分繼續] 按鈕,用於表示同意及分享憑證。僅適用於 Chrome v75 以上版本。 |
user_2tap |
目前無現有工作階段的使用者按下 One Tap [以下列身分繼續] 以選取帳戶並按下 表示同意並共用憑證的彈出式視窗。套用至: 不是以 Chromium 為基礎的瀏覽器 |
btn |
既有工作階段的使用者,先前已同意 按下「使用 Google 帳戶登入」按鈕,然後從中選取 Google 帳戶 「選擇帳戶」來共用憑證 |
btn_confirm |
目前已有工作階段的使用者按下「使用 Google 帳戶登入」按鈕 並按下「確認」按鈕,表示同意並共用憑證。 |
btn_add_session |
沒有先前授予工作階段的使用者 同意按下「使用 Google 帳戶登入」按鈕選取 Google 帳戶 並提供憑證 |
btn_confirm_add_session |
目前無工作階段的使用者先按下「使用 Google 帳戶登入」 按下按鈕以選取 Google 帳戶,然後按下「確認」 按鈕,表示同意並共用憑證。 |
州
這個欄位只會在使用者點選「使用 Google 帳戶登入」按鈕後定義
登入,即可指定點選按鈕的 state
屬性。
這個欄位的值與您在按鈕的
state
屬性。
由於同一個頁面可以顯示多個「使用 Google 帳戶登入」按鈕,
就能為每個按鈕指派不重複的字串因此,您可以看到這個 state
欄位
以便識別使用者點選登入的按鈕。
方法:google.accounts.id.renderButton
google.accounts.id.renderButton
方法會呈現「使用 Google 帳戶登入」功能
按鈕。
請參閱下列方法的程式碼範例:
google.accounts.id.renderButton(
/** @type{!HTMLElement} */ parent,
/** @type{!GsiButtonConfiguration} */ options
)
資料類型:GsiButtonConfiguration
下表列出
GsiButtonConfiguration
資料類型:
屬性 | |
---|---|
type |
按鈕類型:圖示或標準按鈕。 |
theme |
按鈕主題。例如「fill_blue」或「fill_black」。 |
size |
按鈕大小。例如大或小。 |
text |
按鈕文字。例如「使用 Google 帳戶登入」或 「使用 Google 帳戶註冊」。 |
shape |
按鈕形狀。例如矩形或圓形。 |
logo_alignment |
Google 標誌對齊方式:靠左或置中。 |
width |
按鈕寬度,以像素為單位。 |
locale |
如果設定此屬性,系統就會算繪按鈕語言。 |
click_listener |
設定後,系統會在「使用 Google 帳戶登入」功能呼叫此函式 按鈕。 |
state |
若已設定,這個字串會傳回 ID 權杖。 |
屬性類型
以下各節詳細說明瞭每個屬性的類型, 範例。
類型
按鈕類型。預設值為 standard
。
詳情請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
字串 | 是 | type: "icon" |
下表列出可用的按鈕類型及其可用按鈕類型 說明:
類型 | |
---|---|
standard |
|
icon |
主題
按鈕主題。預設值為 outline
。請參閱下表
其他資訊:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | theme: "filled_blue" |
下表列出可用的主題及其說明:
主題 | |
---|---|
outline |
|
filled_blue |
|
filled_black |
大小
按鈕大小。預設值為 large
。請參閱下表
其他資訊:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | size: "small" |
下表列出可用的按鈕大小及其說明:
大小 | |
---|---|
large |
|
medium |
|
small |
text
按鈕文字。預設值為 signin_with
。廣告沒有任何影像
不同 text
屬性的圖示按鈕文字差異。
唯一的例外是系統為了螢幕無障礙而讀出文字時。
詳情請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | text: "signup_with" |
下表列出「所有」可用的按鈕文字及其 說明:
文字 | |
---|---|
signin_with |
|
signup_with |
|
continue_with |
|
signin |
形狀
按鈕形狀。預設值為 rectangular
。請參閱下表
瞭解詳情:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | shape: "rectangular" |
下表列出可用的按鈕形狀及其說明:
圖案 | |
---|---|
rectangular |
|
pill |
|
circle |
|
square |
logo_alignment
Google 標誌的對齊方式。預設值為 left
。此屬性
僅適用於 standard
按鈕類型。詳情請參閱下表
每個 ACL 都由一或多個項目組成
而這些項目包含兩項資訊
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | logo_alignment: "center" |
下表列出可用的對齊方式及其說明:
logo_alignment | |
---|---|
left |
|
center |
寬度
按鈕寬度下限 (以像素為單位)。寬度上限為 400 像素。
詳情請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | width: "400" |
語言代碼
選用設定。使用指定語言代碼顯示按鈕文字,否則會預設為
使用者的 Google 帳戶或瀏覽器設定新增 hl
參數並
例如:
gsi/client?hl=<iso-639-code>
。
如果不設定這項政策,表示瀏覽器的預設語言代碼或 Google 工作階段使用者的設定 偏好設定。因此,不同使用者可能會看到 本地化按鈕,並可能使用不同的大小。
詳情請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | locale: "zh_CN" |
click_listener
您可以定義在「使用 Google 帳戶登入」功能中呼叫的 JavaScript 函式
已透過 click_listener
屬性點選按鈕。
google.accounts.id.renderButton(document.getElementById("signinDiv"), { theme: 'outline', size: 'large', click_listener: onClickHandler }); function onClickHandler(){ console.log("Sign in with Google button clicked...") }
在這個範例中,系統會記錄「使用 Google 帳戶登入」按鈕。 ;
州
選用,因為多個「使用 Google 帳戶登入」按鈕都能顯示在 頁面,您可以使用不重複的字串為每個按鈕指派專屬字串。相同字串 會傳回 ID 符記,這樣您就能找出哪個按鈕使用者 即可登入。
詳情請參閱下表:
類型 | 必填 | 範例 |
---|---|---|
字串 | 選用 | data-state: "button 1" |
資料類型:憑證
當您
native_callback
叫用函式時,系統會傳遞 Credential
物件做為參數。
下表列出物件中的欄位:
欄位 | |
---|---|
id |
用於識別使用者, |
password |
密碼 |
方法:google.accounts.id.disableAutoSelect
使用者登出網站後,您需要呼叫該方法
google.accounts.id.disableAutoSelect
可記錄 Cookie 中的狀態。這個
可避免使用者體驗死循環請參閱下列方法的程式碼片段:
google.accounts.id.disableAutoSelect()
以下程式碼範例會實作 google.accounts.id.disableAutoSelect
方法:onSignout()
<script>
function onSignout() {
google.accounts.id.disableAutoSelect();
}
</script>
方法:google.accounts.id.storeCredential
此方法是瀏覽器原生 store()
方法的包裝函式
credential Manager API。因此只能用來儲存密碼
憑證請參閱下列方法的程式碼範例:
google.accounts.id.storeCredential(Credential, callback)
以下程式碼範例會實作 google.accounts.id.storeCredential
方法:onSignIn()
<script>
function onSignIn() {
let cred = {id: '...', password: '...'};
google.accounts.id.storeCredential(cred);
}
</script>
方法:google.accounts.id.cancel
如果移除依賴方的提示,可以取消 One Tap 流程 。如果已選取憑證,系統會忽略取消作業。詳情請見 以下程式碼的程式碼範例:
google.accounts.id.cancel()
以下程式碼範例實作 google.accounts.id.cancel()
方法
取代為 onNextButtonClicked()
函式:
<script>
function onNextButtonClicked() {
google.accounts.id.cancel();
showPasswordPage();
}
</script>
程式庫載入回呼:onGoogleLibraryLoad
您可以註冊 onGoogleLibraryLoad
回呼。使用者登入後
「使用 Google JavaScript 程式庫」已載入:
window.onGoogleLibraryLoad = () => {
...
};
這個回呼只是 window.onload
回呼的捷徑。沒有任何
行為差異
以下程式碼範例會實作 onGoogleLibraryLoad
回呼:
<script>
window.onGoogleLibraryLoad = () => {
google.accounts.id.initialize({
...
});
google.accounts.id.prompt();
};
</script>
方法:google.accounts.id.revoke
google.accounts.id.revoke
方法會撤銷用來共用
指定使用者的 ID 權杖。請參閱下列方法的程式碼片段:
javascript
google.accounts.id.revoke(login_hint, callback)
參數 | 類型 | 說明 |
---|---|---|
login_hint |
字串 | 使用者 Google 帳戶的電子郵件地址或專屬 ID。ID 是物件的 sub 屬性
credential 酬載。 |
callback |
函式 | 選用的 RevocationResponse 處理常式。 |
以下程式碼範例顯示如何使用具有 ID 的 revoke
方法。
google.accounts.id.revoke('1618033988749895', done => { console.log(done.error); });
資料類型:RevocationResponse
叫用 callback
函式時,會有一個 RevocationResponse
物件
再以參數的形式傳送下表為
登錄到:
欄位 | |
---|---|
successful |
這個欄位是方法呼叫的傳回值。 |
error |
這個欄位可選擇包含詳細的錯誤回應訊息。 |
成功
如果撤銷方法呼叫成功,這個欄位會設為 true 或 失敗時則為 false。
錯誤
這個欄位是字串值,如果撤銷 方法呼叫失敗,表示成功時未定義。