Method: accounts.createAuthUri

如果指定了电子邮件标识符,则检查并返回是否有任何用户账号使用该电子邮件地址注册。如果有已注册的账号,则提取与该账号的电子邮件地址关联的所有提供商。

如果指定了身份提供方 (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

string

要为其提取关联提供商的用户账号的电子邮件标识符。必须设置 identifierproviderId 字段中至少一个。

电子邮件地址的长度应少于 256 个字符,且采用 name@domain.tld 格式。电子邮件地址还应符合 RFC 822 addr-spec 生产规范。

continueUri

string

IDP 将用户重定向回的有效网址。网址不得包含片段或预留的 state 查询参数。

openidRealm
(deprecated)

string

providerId

string

用户用于登录的 IdP 的提供方 ID。这应是已启用登录的提供方 ID,该 ID 应来自默认受支持的 IdP 列表,或采用 oidc.*saml.* 格式。一些示例包括 google.comfacebook.comoidc.testappsaml.testapp。必须设置 identifierproviderId 字段中至少一个。

oauthConsumerKey
(deprecated)

string

oauthScope

string

其他以空格分隔的 OAuth 2.0 范围,用于指定与 IdP 的身份验证请求的范围。用于 OAuth 2.0 IdP。

对于 Google 提供商,如果设置此字段,系统将使用授权代码流程。

context

string

一个不透明字符串,用于在身份验证请求和来自 IdP 的回调之间维护上下文信息。

otaApp
(deprecated)

string

appId
(deprecated)

string

hostedDomain

string

用于 Google 提供程序。用户的 G Suite 托管网域,用于限制该网域中的用户登录。

sessionId

string

一个会话 ID,可在 accounts.signInWithIdp 中进行验证,以防止会话固定攻击。如果不存在,系统会生成一个随机字符串并将其作为会话 ID 返回。

authFlowType

string

用于 Google 提供程序。要使用的身份验证流程的类型。如果存在,此值应为 CODE_FLOW,以指定授权代码流程。否则,系统将使用默认的 ID 令牌流程。

customParameter

map (key: string, value: string)

要添加到授权 URI 中的其他自定义查询参数。以下参数已预留,无法添加:clientIdresponseTypescoperedirectUristate

对于 Microsoft 提供程序,您可以在 tenant 自定义参数中指定要登录的 Azure AD 租户。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

tenantId

string

要为其创建授权 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
(deprecated)

string

authUri

string

请求的提供程序的授权 URI。仅当请求中设置了提供程序 ID 时才会显示。

allProviders[]
(deprecated)

string

registered

boolean

电子邮件标识符是否代表现有账号。仅当请求中设置了电子邮件标识符时才会显示。

providerId

string

请求中的提供方 ID(如果有)。

forExistingProvider

boolean

用户之前是否使用请求中的提供方 ID 登录过。仅当请求中设置了已注册的电子邮件标识符时才会显示。

captchaRequired

boolean

是否因为用户登录尝试失败次数过多而需要显示 CAPTCHA 验证。仅当请求中设置了已注册的电子邮件标识符时才会显示。

sessionId

string

请求中的会话 ID,如果没有,则为 accounts.createAuthUri 生成的随机字符串。它用于防止会话固定攻击。

signinMethods[]

string

用户之前使用过的登录方法的列表。每个元素都是 passwordemailLink 或 IdP 的提供方 ID 之一。仅当请求中设置了已注册的电子邮件标识符时才会显示。如果启用了电子邮件枚举保护,此方法会返回空列表。

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/identitytoolkit
  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅 Authentication Overview