本文档介绍了 Google 第三方授权 JavaScript 库 API,您可以使用该 API 从 Google 加载授权代码或访问令牌。
方法:google.accounts.oauth2.initCodeClient
initCodeClient
方法会初始化并返回一个代码客户端,并在参数中包含配置。
google.accounts.oauth2.initCodeClient(config: CodeClientConfig)
数据类型:CodeClientConfig
下表列出了 CodeClientConfig
数据类型的属性。
属性 | |
---|---|
client_id
|
必需。应用的客户端 ID。您可以在 API 控制台中找到此值。 |
scope
|
必需。以空格分隔的范围列表,用于标识您的应用可以代表用户访问的资源。这些值用于确定 Google 向用户显示的意见征求页面。 |
include_granted_scopes |
可选,默认值为 true 。让应用能够使用增量授权来请求在上下文中访问其他作用域。如果您将此参数的值设置为 false 且授权请求获得批准,则新访问令牌将仅涵盖此 CodeClientConfig 中 scope 请求的所有范围。
|
redirect_uri
|
重定向用户体验所必需。确定 API 服务器在用户完成授权流程后将用户重定向到何处。此值必须与 OAuth 2.0 客户端的某个已获授权的重定向 URI 完全匹配(您已在 API 控制台中配置该 URI),并且必须符合我们的重定向 URI 验证规则。弹出式窗口用户体验将忽略该属性。 |
callback |
弹出式窗口用户体验必需。用于处理返回的代码响应的 JavaScript 函数。 重定向用户体验会忽略该属性。 |
state |
可选。建议用于重定向用户体验。指定应用用于在授权请求和授权服务器响应之间维护状态的任何字符串值。 |
enable_granular_consent |
已废弃,设置后不会产生任何影响。如需详细了解意见征求行为,请参阅 精细权限。 |
enable_serial_consent |
已废弃,设置后不会产生任何影响。如需详细了解意见征求行为,请参阅 精细权限。 |
login_hint |
可选。如果您的应用知道应授权哪位用户执行请求,则可以使用此属性向 Google 提供登录提示。成功后,系统会跳过账号选择步骤。目标用户的电子邮件地址或 ID 令牌 sub 字段值。
如需了解详情,请参阅 OpenID Connect 文档中的 login_hint 字段。
|
hd |
可选。如果您的应用知道用户所属的 Workspace 网域,请使用此信息向 Google 提供提示。成功后,系统会限制用户账号只能使用所提供的网域,或为用户账号预先选择所提供的网域。
如需了解详情,请参阅 OpenID Connect 文档中的 hd 字段。
|
ux_mode |
可选。要用于授权流程的用户体验模式。默认情况下,它会在弹出式窗口中打开意见征求流程。有效值为 popup 和 redirect 。
|
select_account |
可选,默认为 'false'。用于提示用户选择账号的布尔值。 |
error_callback |
可选。用于处理某些非 OAuth 错误的 JavaScript 函数,例如弹出式窗口未能打开;或在返回 OAuth 响应之前关闭。
输入参数的“type”字段会提供详细原因。
|
数据类型:CodeClient
该类只有一个公共方法 requestCode,用于启动 OAuth 2.0 代码用户体验流程。
interface CodeClient {
requestCode(): void;
}
数据类型:CodeResponse
系统会将 CodeResponse
JavaScript 对象传递给弹出式窗口用户体验中的 callback
方法。在重定向用户体验中,CodeResponse
将作为网址参数传递。
下表列出了 CodeResponse
数据类型的属性。
属性 | |
---|---|
code |
成功令牌响应的授权代码。 |
scope |
用户批准的范围的以空格分隔的列表。 |
state |
您的应用用于在授权请求和响应之间维护状态的字符串值。 |
error |
一个 ASCII 错误代码。 |
error_description |
提供其他信息的人类可读 ASCII 文本,用于帮助客户端开发者了解所发生的错误。 |
error_uri |
用于标识包含错误相关信息且易于理解的网页的 URI,用于向客户端开发者提供有关错误的更多信息。 |
方法:google.accounts.oauth2.initTokenClient
initTokenClient
方法会初始化并返回令牌客户端,并在参数中包含配置。
google.accounts.oauth2.initTokenClient(config: TokenClientConfig)
数据类型:TokenClientConfig
下表列出了 TokenClientConfig
数据类型的属性。
属性 | |
---|---|
client_id |
必需。应用的客户端 ID。您可以在 API 控制台中找到此值。 |
callback |
必需。用于处理返回的令牌响应的 JavaScript 函数。 |
scope |
必需。以空格分隔的范围列表,用于标识您的应用可以代表用户访问的资源。这些值用于确定 Google 向用户显示的意见征求页面。 |
include_granted_scopes |
可选,默认值为 true 。让应用能够使用增量授权来请求访问上下文中的其他作用域。如果您将此参数的值设置为 false 且授权请求获得批准,则新访问令牌将仅涵盖此 TokenClientConfig 中 scope 请求的所有范围。
|
prompt |
可选,默认为 'select_account'。以空格分隔且区分大小写的提示列表,供向用户显示。可能的值包括:
|
enable_granular_consent |
已废弃,设置后不会产生任何影响。如需详细了解意见征求行为,请参阅 精细权限。 |
enable_serial_consent |
已废弃,设置后不会产生任何影响。如需详细了解意见征求行为,请参阅 精细权限。 |
login_hint |
可选。如果您的应用知道应授权哪位用户执行请求,则可以使用此属性向 Google 提供登录提示。成功后,系统会跳过账号选择步骤。目标用户的电子邮件地址或 ID 令牌 sub 字段值。
如需了解详情,请参阅 OpenID Connect 文档中的 login_hint 字段。
|
hd |
可选。如果您的应用知道用户所属的 Workspace 网域,请使用此信息向 Google 提供提示。成功后,系统会限制用户账号只能使用所提供的网域,或为用户账号预先选择所提供的网域。
如需了解详情,请参阅 OpenID Connect 文档中的 hd 字段。
|
state |
可选。不推荐。指定应用用于在授权请求和授权服务器响应之间维护状态的任何字符串值。 |
error_callback |
可选。用于处理某些非 OAuth 错误的 JavaScript 函数,例如弹出式窗口未能打开;或在返回 OAuth 响应之前关闭。
输入参数的“type”字段会提供详细原因。
|
数据类型:TokenClient
该类只有一个公共方法 requestAccessToken
,用于启动 OAuth 2.0 令牌用户体验流程。
interface TokenClient {
requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void;
}
参数 | ||
---|---|---|
overrideConfig |
OverridableTokenClientConfig | 可选。在此方法中要替换的配置。 |
数据类型:OverridableTokenClientConfig
下表列出了 OverridableTokenClientConfig
数据类型的属性。
属性 | |
---|---|
scope |
可选。以空格分隔的范围列表,用于标识您的应用可以代表用户访问的资源。这些值用于确定 Google 向用户显示的意见征求页面。 |
include_granted_scopes |
可选,默认值为 true 。让应用能够使用增量授权来请求访问上下文中的其他作用域。如果您将此参数的值设置为 false 且授权请求获得批准,则新访问令牌将仅涵盖此 OverridableTokenClientConfig 中 scope 请求的所有范围。
|
prompt |
可选。以空格分隔且区分大小写的提示列表,供向用户显示。 |
enable_granular_consent |
已废弃,设置后不会产生任何影响。如需详细了解意见征求行为,请参阅 精细权限。 |
enable_serial_consent |
已废弃,设置后不会产生任何影响。如需详细了解意见征求行为,请参阅 精细权限。 |
login_hint |
可选。如果您的应用知道应授权哪位用户执行请求,则可以使用此属性向 Google 提供登录提示。成功后,系统会跳过账号选择步骤。目标用户的电子邮件地址或 ID 令牌 sub 字段值。
如需了解详情,请参阅 OpenID Connect 文档中的 login_hint 字段。
|
state |
可选。不推荐。指定应用用于在授权请求和授权服务器响应之间维护状态的任何字符串值。 |
数据类型:TokenResponse
系统会将 TokenResponse
JavaScript 对象传递给弹出式界面用户体验中的回调方法。
下表列出了 TokenResponse
数据类型的属性。
属性 | |
---|---|
access_token |
成功令牌响应的访问令牌。 |
expires_in |
访问令牌的有效期(以秒为单位)。 |
hd |
已登录用户所属的托管域名。 |
prompt |
从 TokenClientConfig 或 OverridableTokenClientConfig 指定的可用值列表中使用的提示值。 |
token_type |
所颁发令牌的类型。 |
scope |
用户批准的范围的以空格分隔的列表。 |
state |
您的应用用于在授权请求和响应之间维护状态的字符串值。 |
error |
一个 ASCII 错误代码。 |
error_description |
提供其他信息的人类可读 ASCII 文本,用于帮助客户端开发者了解所发生的错误。 |
error_uri |
用于标识包含错误相关信息且易于理解的网页的 URI,用于向客户端开发者提供有关错误的更多信息。 |
方法:google.accounts.oauth2.hasGrantedAllScopes
检查用户是否已授予所有指定的范围。
google.accounts.oauth2.hasGrantedAllScopes(
tokenResponse: TokenResponse,
firstScope: string, ...restScopes: string[]
): boolean;
参数 | ||
---|---|---|
tokenResponse |
TokenResponse
|
必需。一个 TokenResponse 对象。
|
firstScope |
字符串 | 必需。要检查的范围。 |
restScopes |
字符串[] | 可选。要检查的其他镜重。 |
返回 | |
---|---|
布尔值 | 如果已授予所有镜,则为 true。 |
方法:google.accounts.oauth2.hasGrantedAnyScope
检查用户是否已授予任何指定的范围。
google.accounts.oauth2.hasGrantedAnyScope(
tokenResponse: TokenResponse,
firstScope: string, ...restScopes: string[]
): boolean;
参数 | ||
---|---|---|
tokenResponse |
TokenResponse
|
必需。一个 TokenResponse 对象。
|
firstScope |
字符串 | 必需。要检查的范围。 |
restScopes |
字符串[] | 可选。要检查的其他镜重。 |
返回 | |
---|---|
布尔值 | 如果授予了任何范围,则为 true。 |
方法:google.accounts.oauth2.revoke
revoke
方法会撤消用户向应用授予的所有镜重。撤消权限需要有效的访问令牌。
google.accounts.oauth2.revoke(accessToken: string, done: () => void): void;
参数 | ||
---|---|---|
accessToken |
字符串 | 必需。有效的访问令牌。 |
callback |
函数 | 可选。RevocationResponse 处理脚本。 |
数据类型:RevocationResponse
系统会将 RevocationResponse
JavaScript 对象传递给您的回调方法。
下表列出了 RevocationResponse
数据类型的属性。
属性 | |
---|---|
successful |
布尔值。成功时为 true ,失败时为 false 。 |
error |
字符串。成功时未定义。一个 ASCII 错误代码。这包括但不限于标准 OAuth 2.0 错误代码。revoke 方法的常见错误:
|
error_description |
字符串。成功时未定义。直观易懂的 ASCII 文本提供有关 error 属性的其他信息。开发者可以利用此信息更好地了解所发生的错误。error_description 字符串仅提供英语版本。
对于 error 中列出的常见错误,相应的 error_description :
|