基于腾讯云短信接口和nodejs服务器实现手机号验证码
知识储备:js基础、nodejs基础、ajax基础;
1. 手机验证码原理
表单提交,把手机号码传送到后端;后端拿到手机号码后根据相关算法随机形成一个验证码,并将其保存在数据库;用户拿到验证码后将验证码填写完毕提交后,这时候前端会将用户填写的验证码跟数据库中的验证码进行校验,如果数据相同,则登录成功。反则登录失败。
2. 手机验证码实现
实现发送验证码的代码可以直接在腾讯云自动生成;然后我们只要在代码对对应的位置填写一些参数即可;
环境需求:短信接口API(腾讯云购买)、nodejs环境
nodejs安装环境:运行服务器;
2.1 购买短信接口 ---- 进入短信接口控制台
1. 设置签名
签名就是下图的 流量提醒
创建短信签名 创建完签名 记住 签名内容
- 短信签名是位于短信正文前【】中的署名,用于标识公司或业务,例如【腾讯科技】
- 创建短信签名前,请先查看审核标准
2. 设置短信模板
记住模板id
3. 获取密钥
密钥是用来访问短信接口的时候验证你的身份;获取方式:个人中心 ---访问管理---访问密钥---密钥管理---切换使用子账号密钥---快速创建---添加用户名---设置访问方式为编程访问
设置完成后可以获取 SecretId 和 SecretKey 两个值;
4. 获取SDK AppID
短信控制台---应用管理---SDK AppID
5. 安装第三方库&生成主要代码;
短信接口控制台---概览---进入API Explorer
使用 npm install tencentcloud-sdk-nodejs-sms --save 安装第三方库;
3. 具体js的代码
js代码:
// 引入第三方库 const tencentcloud = require('tencentcloud-sdk-nodejs') const SmsClient = tencentcloud.sms.v20210111.Client // 生成6位验证码 let code = ('000000' + Math.floor(Math.random() * 999999)).slice(-6) // 访问接口验证身份 // console.log(code) const clientConfig = { credential: { // 步骤二的获取密钥 // 需要用户输入参数区域 start secretId: '密钥1', secretKey: '密钥2', // 需要用户输入参数区域 end }, region: 'ap-nanjing', profile: { httpProfile: { endpoint: 'sms.tencentcloudapi.com', }, }, } // 实例化要请求产品的client对象,clientProfile是可选的 const client = new SmsClient(clientConfig) const params = { // 国内手机验证 + 86 // 需要用户输入参数区域 start PhoneNumberSet: [86 + 手机号], SmsSdkAppId: 'SmsSdkAppId', SignName: '签名内容', TemplateId: '模板id', TemplateParamSet: ['验证码'], // 需要用户输入参数区域 end } client.SendSms(params).then( (data) => { console.log(data) }, (err) => { console.error('error', err) } )
运行cmd ,使用node运行js文件;
发送成功返回