tencent cloud

短信

动态与公告
公告
产品简介
常用概念
产品概述
审核标准
使用须知
签名审核标准
正文模板审核标准
正文模板示例
审核驳回原因
国际/港澳台短信
国际/港澳台短信简介
国际/港澳台短信购买指南
国际/港澳台短信快速入门
控制台指南
控制台说明
国际/港澳台短信
营销管理
业务统计
应用管理
通用管理
访问管理
实践教程
如何群发祝福短信
如何实现短信验证码功能
API 文档
History
Introduction
API Category
Making API Requests
Status Pull APIs
SMS Statistics APIs
SMS Signature APIs
SMS Delivery APIs
SMS Mobile Number APIs
SMS Conversion Rate APIs
SMS Template APIs
Data Types
Error Codes
短信回调相关接口
SDK 文档
SDK 下载
Java SDK
PHP SDK
Python SDK
Node.js SDK
C# SDK
Go SDK
C++ SDK
常见问题
费用相关问题
安全相关问题
签名相关问题
模板相关问题
发送内容相关问题
其他问题
相关协议
腾讯云短信数据处理和安全协议
腾讯云短信隐私政策
Service Level Agreement
腾讯云短信服务条款
联系我们
文档短信实践教程如何实现短信验证码功能

如何实现短信验证码功能

PDF
聚焦模式
字号
最后更新时间: 2024-05-24 17:14:27
通过手机短信发送验证码,是最普遍、最安全验证用户真实身份的方式。目前,短信验证码广泛应用于用户注册、密码找回、登录保护、身份认证、随机密码、交易确认等应用场景。
本文以使用 云函数 开发一个短信验证码登录注册服务为例,帮助您了解如何实现短信验证码功能。
除云函数之外,还可通过使用 发送短信接口 实现。

准备工作

注册腾讯云 账号,并完成 企业实名认证
已购买短信套餐包。
准备短信签名归属方资质证明文件。
本文以使用企业营业执照作为资质证明文件为例。
了解短信正文内容审核规范。
已获取短信应用的 SDKAppID。

相关资料

其他产品文档

步骤1:配置短信内容

短信签名、短信正文模板提交后,我们会在2个小时左右完成审核,您可以 配置告警联系人 并设置接收模板和签名审核通知,便于及时接收审核通知。

步骤1.1:创建签名

1. 登录 短信控制台
2. 在左侧导航栏选择中国大陆地区短信 > 签名管理,单击创建签名
3. 结合实际情况设置以下参数:
参数
取值样例
签名用途
自用(签名为本账号实名认证的公司、网站、产品名等)
签名类型
App
签名内容
测试 Demo
证明类型
小程序设置页面截图
4. 单击确定
等待签名审核,当状态变为已通过时,短信签名才可用。

步骤1.2:创建正文模板

1. 登录 短信控制台
2. 在左侧导航栏选择中国大陆地区短信 > 正文模板管理,单击创建正文模板
3. 结合实际情况设置以下参数:
参数
取值样例
模板名称
验证码短yanzhe信
短信类型
验证码短信
短信内容
您的注册验证码:{1},请于{2}分钟内填写,如非本人操作,请忽略本短信。
4. 单击确定
等待正文模板审核,当状态变为已通过时,正文模板才可用,请记录模板 ID。

步骤2:设置短信发送频率限制(可选)

注意:
个人认证用户不支持修改频率限制,如需使用该功能,请将 “个人认证” 变更为 “企业认证”。
为了保障业务和通道安全,减少业务被刷后的经济损失,建议 设置发送频率限制。另外,您也可以结合使用腾讯云验证码以便最大程度地保护业务安全。 本文以短信的默认频率限制策略为例。
同一号码同一内容30秒内最多发送1条。
同一手机号一个自然日最多发送10条。

步骤3:配置私有网络和子网

默认情况下,云函数部署在公共网络中,只可以访问公网。如果开发者需要访问腾讯云的 TencentDB 等资源,需要建立私有网络来确保数据安全及连接安全。
1. 按需 规划网络
2. 创建私有网络,具体操作请参见 创建 VPC
注意:
私有网络和子网的 CIDR 创建后不可修改。
参数
取值样例
所属地域
华南地区(广州)
名称
Demo VPC
IPv4 CIDR
10.0.0.0/16
子网名称
Demo 子网
IPv4 CIDR
10.0.0.0/16
可用区
广州三区

步骤4:配置 Redis 数据库

云数据库 Redis 实例需与 步骤3 配置私有网络的地域和子网的可用区保持一致。
购买云数据库 Redis 实例,具体操作请参见 购买方式
参数
取值样例
计费模式
按量计费
地域
广州
数据库版本
Redis 4.0
架构
标准架构
网络
Demo VPC,Demo 子网
实例名
立即命名:Demo 数据库
购买数量
1

步骤5:新建云函数

云函数目前支持 Python、Node.js、PHP、Java 以及 Golang 语言开发,本文以 Node.js 为例。
1. 步骤3 创建的 VPC 所属地域中新建函数,具体操作请参见 编写函数
参数
取值样例
函数名称
Demo
运行环境
Nodejs 8.9
创建方式
模板函数:helloworld
2. 部署函数并配置触发方式为 API 网关触发器,具体操作请参见 部署函数

步骤6:启用公网访问配置(可选)

2020年4月29日前,部署在 VPC 中的云函数默认隔离外网。若需使云函数同时具备内网访问和外网访问能力,可通过启用公网配置方式实现。 登录 云函数控制台,选择函数服务,在云函数列表中单击目标函数名进入函数配置页。单击编辑,勾选公网访问并单击保存保存配置。
2020年4月29日及以后,新部署的云函数默认已启用公网访问,无需额外操作。

步骤7:部署短信 Demo

1. 前往 云函数控制台 并选择 SMS Demo 进行部署。
2. 高级配置中设置 Demo 的环境变量。
字段
说明
REDIS_HOST
Redis 数据库地址
REDIS_PASSWORD
Redis 数据库密码
SMS_TEMPLATE_ID
模板 ID,必须填写已审核通过的模板 ID。模板 ID 可登录 短信控制台 查看。
SMS_SIGN
短信签名内容,使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 短信控制台 查看。注:中国大陆地区短信为必填参数。
SMS_SDKAPPID
短信 SdkAppid 在 短信控制台 添加应用后生成的实际 SdkAppid,示例如1400006666。
3. 高级配置中设置与 Redis 数据库相同的 VPC 环境。
4. 高级配置中设置 SCF 运行角色权限。
需要在 访问管理 控制台给 SCF_QcsRole 角色添加短信 QcloudSMSFullAccess 权限。
这样代码里就能获取到TENCENTCLOUD_SECRETID、TENCENTCLOUD_SECRETKEY、TENCENTCLOUD_SESSIONTOKEN环境变量了,发送短信的 sdk 会用到这些环境变量。
5. 单击完成,即可完成函数部署。
6. 创建函数 API 网关触发器,请求该触发器地址,即可使用短信相关能力。

步骤8:功能使用及说明

验证码的时效性要求较高,您可以把验证码存在内存中或存在云数据库 Redis 中。以手机号作为 key,存储发送时间、验证码、验证次数、是否已验证过等信息。

功能

发送短信验证码

请求参数:
字段
类型
说明
method
string
请求方法,值为 getSms
phone
string
手机号,值为区号+手机号,例如86185662466**

校验验证码(登录)

请求参数:
字段
类型
说明
method
string
请求方法,值为 login
phone
string
手机号,值为区号+手机号,例如86185662466**
code
string
值为6位数字验证码

错误码

字段
说明
InValidParam
缺少参数
MissingCode
缺少验证码参数
CodeHasExpired
验证码已过期
CodeHasValid
验证码已失效
CodeIsError
请检查手机号和验证码是否正确


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈