如果指定了电子邮件标识符,则检查并返回是否有任何用户账号使用该电子邮件地址注册。如果有已注册的账号,则提取与该账号的电子邮件地址关联的所有提供商。
如果指定了身份提供方 (IdP) 的提供方 ID,则为 IdP 创建授权 URI。系统可以将用户定向到此 URI,以便用户使用 IdP 登录。
请求中必须包含 API 密钥,以便识别 Google Cloud 项目。
HTTP 请求
POST https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri
网址采用 gRPC 转码语法。
请求正文
请求正文中包含结构如下的数据:
JSON 表示法 |
---|
{ "identifier": string, "continueUri": string, "openidRealm": string, "providerId": string, "oauthConsumerKey": string, "oauthScope": string, "context": string, "otaApp": string, "appId": string, "hostedDomain": string, "sessionId": string, "authFlowType": string, "customParameter": { string: string, ... }, "tenantId": string } |
字段 | |
---|---|
identifier |
要为其提取关联提供商的用户账号的电子邮件标识符。必须设置 电子邮件地址的长度应少于 256 个字符,且采用 |
continueUri |
IDP 将用户重定向回的有效网址。网址不得包含片段或预留的 |
openidRealm |
|
providerId |
用户用于登录的 IdP 的提供方 ID。这应是已启用登录的提供方 ID,该 ID 应来自默认受支持的 IdP 列表,或采用 |
oauthConsumerKey |
|
oauthScope |
其他以空格分隔的 OAuth 2.0 范围,用于指定与 IdP 的身份验证请求的范围。用于 OAuth 2.0 IdP。 对于 Google 提供商,如果设置此字段,系统将使用授权代码流程。 |
context |
一个不透明字符串,用于在身份验证请求和来自 IdP 的回调之间维护上下文信息。 |
otaApp |
|
appId |
|
hostedDomain |
用于 Google 提供程序。用户的 G Suite 托管网域,用于限制该网域中的用户登录。 |
sessionId |
一个会话 ID,可在 accounts.signInWithIdp 中进行验证,以防止会话固定攻击。如果不存在,系统会生成一个随机字符串并将其作为会话 ID 返回。 |
authFlowType |
用于 Google 提供程序。要使用的身份验证流程的类型。如果存在,此值应为 |
customParameter |
要添加到授权 URI 中的其他自定义查询参数。以下参数已预留,无法添加: 对于 Microsoft 提供程序,您可以在 包含一系列 |
tenantId |
要为其创建授权 URI 或查找电子邮件标识符的 Identity Platform 租户的 ID。如果未设置,则操作将在项目的默认 Identity Platform 实例中执行。 |
响应正文
accounts.createAuthUri 的响应消息。
如果成功,响应正文将包含结构如下的数据:
JSON 表示法 |
---|
{ "kind": string, "authUri": string, "allProviders": [ string ], "registered": boolean, "providerId": string, "forExistingProvider": boolean, "captchaRequired": boolean, "sessionId": string, "signinMethods": [ string ] } |
字段 | |
---|---|
kind |
|
authUri |
请求的提供程序的授权 URI。仅当请求中设置了提供程序 ID 时才会显示。 |
allProviders[] |
|
registered |
电子邮件标识符是否代表现有账号。仅当请求中设置了电子邮件标识符时才会显示。 |
providerId |
请求中的提供方 ID(如果有)。 |
forExistingProvider |
用户之前是否使用请求中的提供方 ID 登录过。仅当请求中设置了已注册的电子邮件标识符时才会显示。 |
captchaRequired |
是否因为用户登录尝试失败次数过多而需要显示 CAPTCHA 验证。仅当请求中设置了已注册的电子邮件标识符时才会显示。 |
sessionId |
请求中的会话 ID,如果没有,则为 accounts.createAuthUri 生成的随机字符串。它用于防止会话固定攻击。 |
signinMethods[] |
用户之前使用过的登录方法的列表。每个元素都是 |
授权范围
需要以下 OAuth 范围之一:
https://www.googleapis.com/auth/identitytoolkit
https://www.googleapis.com/auth/cloud-platform
如需了解详情,请参阅 Authentication Overview。