Method: accounts.sendVerificationCode

发送电话号码登录的短信验证码。

如需将发送给用户的短信文本本地化,请将 HTTP 标头 X-Firebase-Locale 设置为与用户的语言区域对应的语言代码。

请求中必须包含 API 密钥,以便识别 Google Cloud 项目。

HTTP 请求

POST https://identitytoolkit.googleapis.com/v1/accounts:sendVerificationCode

网址采用 gRPC 转码语法。

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "phoneNumber": string,
  "iosReceipt": string,
  "iosSecret": string,
  "recaptchaToken": string,
  "tenantId": string,
  "autoRetrievalInfo": {
    object (AutoRetrievalInfo)
  },
  "safetyNetToken": string,
  "playIntegrityToken": string,
  "captchaResponse": string,
  "clientType": enum (ClientType),
  "recaptchaVersion": enum (RecaptchaVersion)
}
字段
phoneNumber

string

用于接收验证码的电话号码(采用 E.164 格式)。

iosReceipt

string

收到 iOS 应用令牌验证成功的通知。如果未使用“captchaResponse”(未启用 reCAPTCHA Enterprise),则必须指定 iosReceiptiosSecretrecaptchaTokensafetyNetToken 中的至少一个,以验证验证码是否代表真实应用(而非模拟器)发送。此值应来自 verifyIosClient 的响应。调用方还应在 x-ios-bundle-identifier 标头中提供 iosSecret 和软件包 ID(如果有),该软件包 ID 必须与 verifyIosClient 请求中的软件包 ID 一致。

iosSecret

string

以推送通知的形式传送到 iOS 应用的 Secret。应与 iosReceiptx-ios-bundle-identifier 标头一起传递。

recaptchaToken

string

用于应用验证的 reCAPTCHA 令牌。如果未使用“captchaResponse”(未启用 reCAPTCHA Enterprise),则必须指定 iosReceiptiosSecretrecaptchaTokensafetyNetToken 中的至少一个,以验证验证码是否代表真实应用(而非模拟器)发送。应通过调用 getRecaptchaParams 生成 reCAPTCHA,并且在用户完成 reCAPTCHA 验证后,系统会生成 reCAPTCHA 令牌。

tenantId

string

用户登录的 Identity Platform 租户的租户 ID。

autoRetrievalInfo

object (AutoRetrievalInfo)

仅限 Android 设备。供 Google Play 服务用于识别要自动检索的应用。

safetyNetToken

string

仅限 Android 设备。用于声明应用身份,取代 reCAPTCHA 令牌。如果未使用“captchaResponse”(未启用 reCAPTCHA Enterprise),则必须指定 iosReceiptiosSecretrecaptchaTokensafetyNetToken 中的至少一个,以验证验证码是否代表真实应用(而非模拟器)发送。您可以通过 SafetyNet Android Attestation API 生成 SafetyNet 令牌,并将 phoneNumber 字段的 Base64 编码用作 Nonce。

playIntegrityToken

string

仅限 Android 设备。用于断言应用身份,取代 recaptcha 令牌(和 safetyNetToken)。如果未使用“captchaResponse”(未启用 reCAPTCHA Enterprise),则必须指定 iosReceiptiosSecretrecaptchaTokenplayIntegrityToken 中的至少一个,以验证验证码是否代表真实应用(而非模拟器)发送。您可以通过 PlayIntegrity API 生成 Play Integrity 令牌,方法是将 SHA256 应用于 phoneNumber 字段作为 Nonce。

captchaResponse

string

可选。reCAPTCHA 客户端集成提供的 reCAPTCHA Enterprise 令牌。启用 reCAPTCHA Enterprise 时必填。

clientType

enum (ClientType)

可选。客户端类型,即 web、android 或 ios。启用 reCAPTCHA Enterprise 时必填。

recaptchaVersion

enum (RecaptchaVersion)

可选。captchaResponse 中 reCAPTCHA 令牌的 reCAPTCHA 版本。启用 reCAPTCHA Enterprise 时必填。

响应正文

针对 accounts.sendVerificationCode 的响应消息。

如果成功,响应正文将包含结构如下的数据:

JSON 表示法
{
  "sessionInfo": string
}
字段
sessionInfo

string

加密的会话信息。这可在 signInWithPhoneNumber 中用于对电话号码进行身份验证。

授权范围

需要以下 OAuth 范围之一:

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

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

AutoRetrievalInfo

自动检索短信所需的信息。

JSON 表示法
{
  "appSignatureHash": string
}
字段
appSignatureHash

string

Google Play 服务的 SMS Retriever API 的 Android 应用签名哈希。