目前,短信验证码广泛应用于用户注册、密码找回、登录保护、身份认证、随机密码、交易确认等应用场景。本文以使用云函数开发一个短信验证码登录注册服务为例,帮助您了解如何实现短信验证码功能。
准备工作
已购买短信套餐包。
准备短信签名归属方资质证明文件;
了解短信正文内容审核规范;
已获取短信应用的 SDKAppID。
步骤1:配置短信内容
短信签名、短信正文模板提交后,我们会在2个小时左右完成审核,您可以配置告警联系人并设置接收模板和签名审核通知,便于及时接收审核通知。
1:创建签名
登录短信控制台。
在左侧导航栏选择国内短信>签名管理,单击创建签名。
结合实际情况和短信签名审核标准设置以下参数:
单击确定。
等待签名审核,当状态变为已通过时,短信签名才可用。
2:创建正文模板
登录短信控制台。
在左侧导航栏选择国内短信>正文模板管理,单击创建正文模板。
结合实际情况和短信正文模板审核标准设置以下参数:
单击确定。
等待正文模板审核,当状态变为已通过时,正文模板才可用,请记录模板 ID。
步骤2:配置私有网络和子网
默认情况下,云函数部署在公共网络中,只可以访问公网。如果开发者需要访问腾讯云的 TencentDB 等资源,需要建立私有网络来确保数据安全及连接安全。
按需规划网络。
创建私有网络,具体操作请参见创建 VPC。
步骤3:配置 Redis 数据库
云数据库 Redis 实例需与 步骤2 配置私有网络的地域和子网的可用区保持一致。
购买云数据库 Redis 实例,具体操作请参见购买方式。
步骤4:新建云函数
云函数目前支持 Python、Node.js、PHP、Java 以及 Golang 语言开发,本文以 Node.js 为例。
在 步骤2 创建的 VPC 所属地域中新建函数,具体操作请参见编写函数。
部署函数并配置触发方式为API网关触发器,具体操作请参见部署函数。
步骤5:部署短信 Demo
前往云函数控制台并选择 SMS Demo 进行部署。
在高级配置中设置 Demo 的环境变量。
在高级配置中设置与 Redis 数据库相同的 VPC 环境。
在高级配置中设置 SCF 运行角色权限。
需要在访问管理控制台给 SCF_QcsRole 角色添加短信 QcloudSMSFullAccess 权限
这样代码里就能获取到TENCENTCLOUD_SECRETID、TENCENTCLOUD_SECRETKEY、TENCENTCLOUD_SESSIONTOKEN环境变量了,发送短信的 sdk 会用到这些环境变量。
点击完成,即可完成函数部署。
创建函数 API网关触发器,请求该触发器地址,即可使用短信相关能力。
步骤6:功能使用及说明
验证码的时效性要求较高,您可以把验证码存在内存中或存在云数据库 Redis 中。以手机号作为 key,存储发送时间、验证码、验证次数、是否已验证过等信息。