跳到主要内容

自定义短信服务商配置指南

功能概述

云开发身份认证支持手机号短信验证码登录方式。默认情况下,系统使用云开发内置短信配额发送验证码。如需使用自己的短信服务商,可通过 API 配置自定义短信通道。

当前已支持的服务商:腾讯云短信TENCENT_CN 国内、TENCENT_INTL 国际/港澳台)。后续将陆续接入更多服务商,本指南将持续更新。

配置完成后,用户在注册/登录时触发的验证码短信,将通过您配置的短信服务商发出,您可自主控制签名、模板及每日发送上限。

前提条件

在调用配置接口前,您需要在腾讯云完成以下准备工作:

第一步:开通腾讯云短信服务

  1. 登录 腾讯云短信控制台,同意服务协议后开通短信服务。
  2. 进入应用管理 > 应用列表,点击创建应用,填写应用名称,创建完成后记录 SdkAppId
  3. 前往 API 密钥管理,创建或查看 SecretIdSecretKey
注意

SecretKey 属于敏感凭证,请妥善保管,避免泄露。

第二步:申请短信签名

短信签名将显示在发送给用户的短信开头,例如【腾讯云】。

国内短信签名

  1. 进入控制台左侧导航国内短信 > 签名管理,点击创建签名
  2. 根据实际情况填写:
    • 签名用途:自用(本账号旗下产品)或他用(第三方产品,需上传授权委托书)
    • 签名类型:公司、App、商标、政府/机关事业单位等
    • 签名内容:填写实际显示内容,无需填写【】,如 云开发
  3. 上传对应证明文件(营业执照扫描件等),提交审核。
  4. 审核通过后记录签名内容备用。
提示

官方文档:管理国内短信签名。审核时间为工作日 9:00–21:00,周末 9:00–18:00,预计约 2 小时。

国际/港澳台短信签名(可选)

  1. 进入控制台左侧导航国际/港澳台短信 > 签名管理,点击创建签名
  2. 填写签名用途、类型及内容(国际签名内容为 2–15 字,无需方括号)。
  3. 证明文件为可选项(提供可提高审核通过率),提交审核。
  4. 审核通过后记录签名内容备用。

第三步:申请短信模板

短信模板定义了验证码短信的正文内容,变量部分使用占位符 {1}{2} 表示。

国内短信模板(示例)

您的验证码为:{1},{2} 分钟内有效,请勿泄露给他人。

国际短信模板(示例)

Your verification code is {1}, valid for {2} minutes. Do not share it with others.

申请步骤:

  1. 进入国内短信国际/港澳台短信 > 正文模板管理,点击创建正文模板
  2. 填写模板名称、模板内容,选择短信类型为验证码
  3. 提交审核,审核通过后记录**模板 ID(TemplateId)**备用。
提示

完成准备后,您应已获取以下信息

参数说明获取路径
SdkAppId短信应用 ID短信控制台 > 应用管理
SecretIdAPI 密钥 IDAPI 密钥管理
SecretKeyAPI 密钥API 密钥管理
SignName短信签名内容短信控制台 > 签名管理(审核通过后)
TemplateId短信模板 ID短信控制台 > 正文模板管理(审核通过后)

API 接口说明

接口信息

项目说明
接口名称ModifyLoginConfig(修改登录策略)
请求域名tcb.tencentcloudapi.com
API 版本2018-06-08
HTTP 方法POST
频率限制20 次/秒

输入参数

顶层参数

参数名类型是否必填说明
EnvIdString云开发环境 ID
PhoneNumberLoginBoolean手机号短信登录开关
EmailLoginBoolean邮箱登录开关
UserNameLoginBoolean用户名密码登录开关
AnonymousLoginBoolean匿名登录开关
SmsVerificationConfigObject短信验证码发送通道配置,见下方详细说明

SmsVerificationConfig(短信通道配置)

参数名类型是否必填说明
TypeString短信发送通道类型。default:使用云开发内置短信;apis:接入自定义 API 数据源;template:使用自定义短信服务商模板(腾讯云短信使用此值
NameStringType 为 apis 时必填自定义 APIs 数据源标识
MethodStringType 为 apis 时必填自定义 APIs 方法名
SmsDayLimitInteger单个手机号每日发送上限,默认 30 次,-1 表示不限制
TemplateProviderObjectType 为 template 时必填服务商短信模板配置,见下方 SMSProviderTemplateConfig 说明

SMSProviderTemplateConfig(服务商模板配置)

参数名类型是否必填说明
VendorString短信服务商。TENCENT_CN:腾讯云短信(国内);TENCENT_INTL:腾讯云短信(国际/港澳台)
TemplateIdString短信模板 ID(审核通过的模板)
SdkAppIdString腾讯云短信应用 ID
SignNameString短信签名内容(审核通过的签名)
SecretIdString腾讯云 API 密钥 ID
SecretKeyString腾讯云 API 密钥
SenderIdString发送方 ID,国际短信部分场景需填写
TemplateExtendParamArray of Object模板自定义扩展参数,见下方 SMSTemplateParams 说明

SMSTemplateParams(模板扩展参数)

参数名类型说明
KeyString参数键(使用命名占位符时填写)
ValueString参数值

请求示例

配置腾讯云国内短信(TENCENT_CN)

{
"EnvId": "your-env-id",
"PhoneNumberLogin": true,
"EmailLogin": false,
"UserNameLogin": false,
"AnonymousLogin": false,
"SmsVerificationConfig": {
"Type": "template",
"SmsDayLimit": 100,
"TemplateProvider": {
"Vendor": "TENCENT_CN",
"SdkAppId": "1400000000",
"SecretId": "AKIDxxxxxxxx",
"SecretKey": "xxxxxxxxxxxxxxxx",
"SignName": "云开发",
"TemplateId": "123456"
}
}
}

配置腾讯云国际/港澳台短信(TENCENT_INTL)

{
"EnvId": "your-env-id",
"PhoneNumberLogin": true,
"EmailLogin": false,
"UserNameLogin": false,
"AnonymousLogin": false,
"SmsVerificationConfig": {
"Type": "template",
"SmsDayLimit": 100,
"TemplateProvider": {
"Vendor": "TENCENT_INTL",
"SdkAppId": "1400000000",
"SecretId": "AKIDxxxxxxxx",
"SecretKey": "xxxxxxxxxxxxxxxx",
"SignName": "CloudBase",
"TemplateId": "789012"
}
}
}

恢复使用云开发内置短信

{
"EnvId": "your-env-id",
"PhoneNumberLogin": true,
"EmailLogin": false,
"UserNameLogin": false,
"AnonymousLogin": false,
"SmsVerificationConfig": {
"Type": "default",
"SmsDayLimit": 30
}
}

输出参数

参数名类型说明
RequestIdString唯一请求 ID,用于问题定位

响应示例

{
"Response": {
"RequestId": "70b8908d-5c99-4a20-be23-f84aff0bfd37"
}
}

注意事项

  1. 签名和模板需提前审核通过:调用接口前,请确保腾讯云短信的签名和模板均已通过审核,否则短信发送将失败。

  2. 国内与国际场景分开配置:国内短信和国际/港澳台短信的 SignName、TemplateId 分别管理,请根据您的用户群体选择对应的配置。

  3. SmsDayLimit 合理设置:建议根据业务量设置每日上限,防止异常刷量,同时避免设置过低影响正常用户登录。

  4. SecretKey 安全存储:请勿将 SecretKey 硬编码在前端代码中,建议通过后端服务调用接口。

  5. 配置即时生效:接口调用成功后,配置立即生效,所有使用该云开发环境的用户登录时均将使用新的短信通道。

参考链接