流浪のwolf

卷帝

导航

基于腾讯云短信接口和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文件;

发送成功返回

posted on 2022-09-01 15:21  流浪のwolf  阅读(346)  评论(0编辑  收藏  举报