Sign In With Google JavaScript API(使用 Google JavaScript API 参考文档)

本参考页面介绍了 Sign-In JavaScript API。您可以使用此 API ,在您的网页上显示“一键式”提示或“使用 Google 账号登录”按钮。

方法:google.accounts.id.initialize

google.accounts.id.initialize 方法会初始化“使用 Google 账号登录” 配置客户端。请参阅以下代码示例 方法:

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 您使用了多个模块(例如一键式、个性化按钮、撤消、 等)。
  • 如果您确实多次调用 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 一键式提示容器元素的 DOM ID
nonce ID 令牌的随机字符串
context 一键提示中的标题和字词
state_cookie_domain 如果您需要在父级网域及其子网域中调用一键快捷功能, 将父网域传递到此字段 。
ux_mode “使用 Google 账号登录”按钮的用户体验流程
allowed_parent_origin 允许嵌入中间 iframe 的来源。点按一下 如果此字段存在,则以中间 iframe 模式运行。
intermediate_iframe_close_callback 在用户手动替换时,覆盖默认的中间 iframe 行为 关闭一键快捷功能。
itp_support 在 ITP 浏览器上启用升级后的一键式用户体验。
login_hint 通过提供用户提示来跳过账号选择。
hd 限制按网域选择账号。
use_fedcm_for_prompt 允许浏览器控制用户登录提示,并通过 在您的网站与 Google 之间建立登录流程。

client_id

此字段是您应用的客户端 ID,可在 Google Cloud 控制台。如需了解详情,请参阅下表:

类型 是否必须提供 示例
字符串 client_id: "CLIENT_ID.apps.googleusercontent.com"

auto_select

此字段用于确定是否在没有任何用户的情况下自动返回 ID 令牌 只有一个 Google 会话批准了您的应用时触发互动 。默认值为 false。如需了解详情,请参阅下表 信息:

类型 是否必须提供 示例
布尔值 可选 auto_select: true

callback

此字段是 JavaScript 函数,用于处理从 “一键登录”提示或弹出式窗口如果 Google 使用一键快捷按钮或“使用 Google 账号登录”按钮 popup 用户体验模式。请参阅 以了解更多信息:

类型 是否必须提供 示例
函数 必须开启设置才能使用一键快捷功能和 popup 用户体验模式 callback: handleResponse

login_uri

此属性是您的登录端点的 URI。

该值必须与 OAuth 的某个已获授权的重定向 URI 完全匹配 您配置的 2.0 客户端 位于 Google Cloud 控制台中,并且必须满足我们的重定向 URI 验证要求 规则

如果当前页面是您的登录页面,则可以省略该属性,其中 凭据会默认发布到此页面。

当用户在访问网站时 点击“使用 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

此字段用于设置是否在用户点击 。默认值为 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

此字段会更改一键快捷提示中的标题和消息文本。请参阅 如需了解详情,请参阅下表:

类型 是否必须提供 示例
字符串 可选 context: "use"

下表列出了所有可用上下文及其说明:

上下文
signin “使用 Google 账号登录”
signup “使用 Google 账号注册”
use “通过 Google 使用”

如果您需要在父网域及其子网域中显示一键快捷功能,请将 父网域添加到此字段,以便使用一个共享状态 Cookie。请参阅 如需了解详情,请参阅下表:

类型 是否必须提供 示例
字符串 可选 state_cookie_domain: "example.com"

ux_mode

使用此字段可设置“使用 Google 账号登录”按钮使用的用户体验流程。默认值为 popup。此属性对 OneTap 用户体验没有影响。请参阅 以了解更多信息:

类型 是否必须提供 示例
字符串 可选 ux_mode: "redirect"

下表列出了可用的用户体验模式及其说明。

用户体验模式
popup 在弹出式窗口中执行登录用户体验流程。
redirect 通过整页重定向执行登录用户体验流程。

allowed_parent_origin

允许嵌入中间 iframe 的来源。一键运行 处于中间 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.comlogin.news.example.com)。使用 通配符:

  • 模式字符串不能仅由通配符和顶级组成 网域。例如,https://.comhttps://.co.uk 无效;如上所述,"https://.example.com"example.com 及其子网域匹配。您还可以使用 数组来表示 2 个不同的网域。例如: ["https://example1.com", "https://.example2.com"] 个匹配项 example1.comexample2.comexample2.com 的子网域
  • 通配符域名必须以安全的 https:// 架构开头,因此 “"*.example.com"”被视为无效。

如果“allowed_parent_origin”字段的值无效,则使用一键快捷功能 中间 iframe 模式的初始化会失败并停止。

intermediate_iframe_close_callback

当用户手动关闭 One 时,替换默认的中间 iframe 行为 点按“X”即可点按按钮。默认情况下 立即从 DOM 中移除中间 iframe。

intermediate_iframe_close_callback 字段仅在 iframe 模式。它只影响中间 iframe,而不是 一键式 iframe。在调用回调之前,一键式界面已被移除。

类型 是否必须提供 示例
函数 可选 intermediate_iframe_close_callback: logBeforeClose

itp_support

此字段用于确定 一键升级用户体验 在支持智能反跟踪的浏览器上启用 (ITP)。默认值为 false。如需了解详情,请参阅下表 信息:

类型 是否必须提供 示例
布尔值 可选 itp_support: true

login_hint

如果您的应用事先知道哪个用户应登录,它可以 向 Google 提供登录提示。成功后,系统会跳过账号选择。 接受的值包括:电子邮件地址或 ID 令牌的 sub 字段值。

如需了解详情,请参阅 OpenID Connect 中的 login_hint 字段 文档。

类型 是否必须提供 示例
字符串、电子邮件地址或 ID 令牌中的值 sub 字段。 可选 login_hint: 'elisa.beckett@gmail.com'

高清

如果用户有多个账号,但只能使用其 Workspace 登录 账号使用该库向 Google 提供域名提示。成功后,用户 仅限于所提供的网域。 通配符值:* 仅向用户提供 Workspace 账号,并且不包含 在账号选择过程中创建消费者账号 (user@gmail.com)。

如需了解详情,请参阅 OpenID Connect 文档中的 hd 字段。

类型 是否必须提供 示例
字符串。完全限定域名或 *。 可选 hd: '*'

use_fedcm_for_prompt

允许浏览器控制用户登录提示并调解登录流程 。默认值为 false。请参阅迁移到 FedCM 页面。

类型 是否必须提供 示例
布尔值 可选 use_fedcm_for_prompt: true

方法:google.accounts.id.prompt

google.accounts.id.prompt 方法会显示一键式提示或 浏览器原生凭据管理器。initialize() 请参阅以下方法的代码示例:

 google.accounts.id.prompt(/**
 @type{(function(!PromptMomentNotification):void)=} */ momentListener)

通常,prompt() 方法会在网页加载时调用。考虑到本次活动 状态和用户设置,那么“一键式提示界面”可能 。要获取有关不同时刻的界面状态通知,请将 函数来接收界面状态通知。

通知会在以下时刻触发:

  • 显示时刻:发生在调用 prompt() 方法后。通过 通知,其中包含一个布尔值,用于指示界面是否 显示或不显示。
  • 跳过时刻:当一键关闭提示被自动关闭时,就会发生这种情况 取消、手动取消或 Google 未能颁发凭据时,例如 当所选会话退出 Google 账号时触发。

    在这些情况下,我们建议您继续使用下一个身份 (如果有)。

  • 已关闭时刻:当 Google 成功检索到 凭据或用户想要停止凭据检索流程。对于 例如,当用户开始在 登录对话框,您可以调用 google.accounts.id.cancel() 方法来关闭 一键提示并触发一个已关闭的时刻。

以下代码示例实现了跳过时刻:

<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() 此通知是否针对某个显示时刻?界面是否 ?

注意 :当 FedCM 处于 启用,则不会触发此通知。请参阅 迁移到 FedCM 页面。
isNotDisplayed() 此通知是针对某个显示时刻,界面不是 ?

注意 :当 FedCM 处于 启用,则不会触发此通知。请参阅 迁移到 FedCM 页面。
getNotDisplayedReason()

界面未显示的详细原因。以下是 可能的值:

  • browser_not_supported
  • invalid_client
  • missing_client_id
  • opt_out_or_no_session
  • secure_http_required
  • suppressed_by_user
  • unregistered_origin
  • unknown_reason
注意 :当 FedCM 处于 已启用,则此方法不受支持。请参阅 迁移到 FedCM 页面。
isSkippedMoment() 这是针对跳过片段的通知吗?
getSkippedReason()

跳过时刻的详细原因。以下是 可能的值:

  • auto_cancel
  • user_cancel
  • tap_outside
  • issuing_failed
注意 :当 FedCM 处于 已启用,则此方法不受支持。请参阅 迁移到 FedCM 页面。
isDismissedMoment() 此通知是针对某个被忽略的时刻吗?
getDismissedReason()

拒绝的详细原因。可进行以下处理 值:

  • credential_returned
  • cancel_called
  • flow_restarted
getMomentType()

返回时刻类型的字符串。可进行以下处理 值:

  • display
  • skipped
  • dismissed

数据类型:CredentialResponse

调用 callback 函数时,系统会为一个 CredentialResponse 对象 作为参数传递。下表列出了其中包含的字段 在凭据响应对象中:

字段
credential 此字段是返回的 ID 令牌。
select_by 此字段用于设置凭据的选择方式。
state 仅当用户点击“使用 Google 账号登录”功能时,才会定义此字段 按钮登录,该按钮的state 属性。

凭据

此字段是采用 base64 编码的 JSON 网络令牌 (JWT) 字符串形式的 ID 令牌。

时间 已解码、 JWT 如下所示:

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 账号的全局唯一标识符。 使用 sub 字段作为用户的标识符,因为它在所有 Google 服务中是唯一的 账号,且绝不会重复使用。请勿使用电子邮件地址作为标识符,因为 一个 Google 账号可以在不同的时间点拥有多个电子邮件地址。

使用 emailemail_verifiedhd 字段,您可以确定 Google 对电子邮件地址拥有权威性如果 Google 权威信息,确认用户是合法账号所有者。

Google 具有权威性的情形:

  • email”的后缀为 @gmail.com,这是一个 Gmail 账号。
  • email_verified 为 true 且 hd 已设置,这是 Google Workspace 。

用户无需使用 Gmail 或 Google Workspace 即可注册 Google 账号。 如果 email 不包含 @gmail.com 后缀且 hd 不存在,Google 将 不具有权威性,建议通过密码或其他验证方法 验证用户身份。email_verfied 可能为 true,因为 Google 最初验证的是 创建 Google 账号的用户, 之后可能已经更改了。

exp 字段显示了在 服务器端。一小时 代表通过“使用 Google 账号登录”功能获取的 ID 令牌。您需要验证 token请勿将 exp 用于会话管理。ID 令牌过期 并不表示用户已退出账号。您的应用负责会话 用户管理

select_by

下表列出了 select_by 字段的可能值。通过 与会话和同意情况一起使用的按钮类型用于设置 值,

  • 用户按下了一键快捷按钮或“使用 Google 账号登录”按钮,或者使用过 无接触自动登录流程

  • 找到了 1 个现有会话,或者用户选择并登录了 用 Google 账号建立新会话。

  • 在与您的应用共享 ID 令牌凭据之前,

    • 已按下“确认”按钮以同意共享凭据, 或
    • 之前已给予同意并使用“选择账号”来选择 Google 账号。

此字段的值会设为其中一种类型

说明
auto 符合以下条件的用户自动登录已有会话 之前已同意共享凭据。仅适用于 不支持 FedCM 的浏览器。
user 已有会话且之前已给予同意的用户 按一下一键“以如下身份继续”共享凭据的按钮。应用 不支持 FedCM 的浏览器。
fedcm 用户点按了一键“继续”,按钮以分享 验证凭据。仅适用于 FedCM 支持
fedcm_auto 符合以下条件的用户自动登录已有会话 之前已同意使用 FedCM 一键分享凭据。 仅适用于 FedCM 支持
user_1tap 已有会话的用户按了一键式“继续以的身份” 按钮以表示同意并分享凭据。仅适用于 Chrome v75 及更高版本。
user_2tap 当前没有会话的用户点按了一键“继续”按钮 按钮以选择账号,然后在 用于表示同意并分享凭据的弹出式窗口。应用对象 非基于 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 <ph type="x-smartling-placeholder">
</ph>
包含文本或个性化信息的按钮。
icon <ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> 无文本的图标按钮。

主题

按钮主题。默认值为 outline。请参阅下表 更多信息:

类型 是否必须提供 示例
字符串 可选 theme: "filled_blue"

下表列出了可用的主题及其说明:

主题背景
outline <ph type="x-smartling-placeholder">
</ph>
标准的按钮主题。
filled_blue <ph type="x-smartling-placeholder">
</ph>
蓝色填充的按钮主题。
filled_black <ph type="x-smartling-placeholder">
</ph>
以黑色填充的按钮主题。

大小

按钮大小。默认值为 large。请参阅下表 更多信息:

类型 是否必须提供 示例
字符串 可选 size: "small"

下表列出了可用的按钮大小及其说明:

大小
large <ph type="x-smartling-placeholder">
</ph> 大标准按钮 大图标按钮 一个大的个性化按钮
大按钮。
medium <ph type="x-smartling-placeholder">
</ph> 中等标准按钮 中等图标按钮
一个中等大小的按钮。
small <ph type="x-smartling-placeholder">
</ph> 小按钮 小图标按钮
一个小按钮。

text

按钮文字。默认值为 signin_with。没有视觉元素 具有不同 text 属性的图标按钮的文本差异。 唯一的例外情况是为支持屏幕无障碍而读出的文字。

如需了解详情,请参阅下表:

类型 是否必须提供 示例
字符串 可选 text: "signup_with"

下表列出了所有可用的按钮文字及其 说明:

文字
signin_with <ph type="x-smartling-placeholder">
</ph>
按钮文字为“使用 Google 账号登录”。
signup_with <ph type="x-smartling-placeholder">
</ph>
按钮文字为“使用 Google 注册”。
continue_with <ph type="x-smartling-placeholder">
</ph>
按钮文字为“使用 Google 继续”。
signin <ph type="x-smartling-placeholder">
</ph>
按钮文字为“登录”。

形状

按钮形状。默认值为 rectangular。请参阅下表 了解详细信息:

类型 是否必须提供 示例
字符串 可选 shape: "rectangular"

下表列出了可用的按钮形状及其说明:

形状
rectangular <ph type="x-smartling-placeholder">
</ph>
矩形按钮。如果用于 icon 按钮类型,则其作用与 square 相同。
pill <ph type="x-smartling-placeholder">
</ph>
药丸形状的按钮。如果用于“icon”按钮 那么它与 circle 相同。
circle <ph type="x-smartling-placeholder">
</ph>
圆形按钮。如果用于 standard 按钮类型,则其作用与 pill 相同。
square <ph type="x-smartling-placeholder">
</ph>
方形按钮。如果用于 standard 按钮类型,则其作用与 rectangular 相同。

logo_alignment

Google 徽标的对齐方式。默认值为 left。此属性 仅适用于 standard 按钮类型。如需了解详情,请参阅下表 信息:

类型 是否必须提供 示例
字符串 可选 logo_alignment: "center"

下表列出了可用的对齐方式及其说明:

logo_alignment
left <ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> 将 Google 徽标左对齐。
center <ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> 使 Google 徽标居中对齐。

width

最小按钮宽度(以像素为单位)。宽度上限为 400 像素。

如需了解详情,请参阅下表:

类型 是否必须提供 示例
字符串 可选 width: "400"

语言区域

可选。使用指定的语言区域显示按钮文字,否则默认为 用户的 Google 账号或浏览器设置。添加 hl 参数并 将语言代码添加到 src 指令,例如: gsi/client?hl=<iso-639-code>.

如果未设置,则使用浏览器的默认语言区域或 Google 会话用户的 偏好设置。因此,不同的用户可能会看到 本地化按钮,可能具有不同的尺寸。

如需了解详情,请参阅下表:

类型 是否必须提供 示例
字符串 可选 locale: "zh_CN"

click_listener

您可以定义一个 JavaScript 函数,以供用户在使用 Google 账号登录时调用 按钮是通过 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 账号登录”按钮后访问控制台。

可选,因为同一屏幕上可以显示多个“使用 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

如果您移除依赖方的提示,可以取消一键恢复流程 DOM如果已选择凭据,系统会忽略取消操作。请参阅 以下是该方法的代码示例:

google.accounts.id.cancel()

以下代码示例实现了 google.accounts.id.cancel() 方法 并使用 onNextButtonClicked() 函数:

<script>
  function onNextButtonClicked() {
    google.accounts.id.cancel();
    showPasswordPage();
  }
</script>

库加载回调:onGoogleLibraryLoad

您可以注册 onGoogleLibraryLoad 回调。应用会在商家登录名牌后收到通知 在 With 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 凭据载荷。
callback 函数 可选 RevocationResponse 处理程序。

以下代码示例展示了如何结合使用 revoke 方法和 ID。

  google.accounts.id.revoke('1618033988749895', done => {
    console.log(done.error);
  });

数据类型:RevocationResponse

调用 callback 函数时,系统会为一个 RevocationResponse 对象 作为参数传递。下表列出了其中包含的字段 在撤消响应对象中:

字段
successful 此字段是方法调用的返回值。
error 此字段可视需要包含详细的错误响应消息。

成功

此字段是一个布尔值,如果撤消方法调用成功,则设置为 true;或者 如果失败,则为 false。

错误

此字段是一个字符串值,并且会在撤消后包含详细的错误消息 方法调用失败,在成功时未定义。