node中使用短信验证功能(阿里云为例)

Posted 苦海123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node中使用短信验证功能(阿里云为例)相关的知识,希望对你有一定的参考价值。

一、选择短信平台
短信平台有很多,这里我选择阿里云,详细步骤如下:

  1. 进入短信控制台,对要发送的短信格式进行配置,如果没有签名,需要申请签名后操作(注意:需要自己已有阿里云账号且实名认证成功)
  2. 按照如下步骤配置:
  3. 配置好后就可以生成一个AccessKey ID(存在于安全信息管理),用于写node服务代码,如:
  4. node中封装一个发短信校验功能模块如下:
// 发短信功能模块的封装:
const SMSClient = require('@alicloud/sms-sdk');//用户调用阿里短信平台的框架
const accessKeyId = 'LT4FterKWkj5LJAmT72QdV';//短信平台获取accessKeyId
const secretAccessKey =  '4AS4WvwwZPTFe9wO3PxeHajKwZ8C';//短信平台获取accessKeySecret

let smsClient = new SMSClient(accessKeyId,secretAccessKey);//实例一个发送短信的实例

let sendLoginCroeCode = async (phone,verCode) => //发送短信功能封装为函数供其它需要发送短信的地方调用
  try 
    //参数校验
    if (!phone) throw ('缺少号码');
    if (!verCode) throw ('缺少验证码');
    //构造请求参数:
    var dataToSend = 
      PhoneNumbers: phone,
      SignName: '签名',
      TemplateCode: 'SMS_220354743',
      TemplateParam: JSON.stringify( code: verCode ),
    ;

    console.info('验证码是->', verCode, 'options:', dataToSend);//

    let res = await smsClient.sendSMS(dataToSend);//调用smsClient实例的方法:sendSMS,发送验证码

    let  Code  = res;
    // 处理状态:
    if (Code === 'OK') 
      //处理返回参数
      return res;
    
    throw '短信发送失败!'
   catch (error) 
    throw ('发送短信验证码失败,您的操作可能过于频繁,请稍微再试!');
  
;

// 导出此方法:
module.exports = sendLoginCroeCode;

5.node中使用此模块开发接口:

// 所有路由(后端接口):
const app = require('./bodyparses.js');//配置过bodyparse的express
const sendLoginCroeCode = require('./notecheck.js');//引入短信校验功能模块


// 短信校验功能:

// 实现短信验证码接口供前端使用:
app.post('/api/notechecks',(request,response)=>
// 随机生成一个四位数验证码用于传入阿里短信平台和写入用户信息到数据库时使用:
var verCode = String(1000 + parseInt(Math.random() * 1000000)).substr(0, 4);
    let jsonnote = request.body;
    sendLoginCroeCode(jsonnote.phone,verCode);//传入手机号和验证码调用该函数去让阿里短信平台发送短信给用户
);
//提示:此代码为主要代码,其它框架部分省略。

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者删除。
笔者:苦海

以上是关于node中使用短信验证功能(阿里云为例)的主要内容,如果未能解决你的问题,请参考以下文章

Java实现短信发送

Java 使用阿里云短信的API接口

阿里云升级版短信验证教程PHP篇

阿里云升级版短信验证教程PHP篇

阿里云升级版短信验证教程PHP篇

Node 接入阿里云实现短信验证码