一、选择短信平台
短信平台有很多,这里我选择阿里云,详细步骤如下:
- 进入短信控制台,对要发送的短信格式进行配置,如果没有签名,需要申请签名后操作(注意:需要自己已有阿里云账号且实名认证成功)
- 按照如下步骤配置:
- 配置好后就可以生成一个AccessKey ID(存在于安全信息管理),用于写node服务代码,如:
- node中封装一个发短信校验功能模块如下:
// 发短信功能模块的封装:
const SMSClient = require('@alicloud/sms-sdk');//用户调用阿里短信平台的框架
const accessKeyId = 'LT4FterKWkj5LJAmT72QdV';//短信平台获取accessKeyId
const secretAccessKey = '4AS4WvwwZPTFe9wO3PxeHajKwZ8C';//短信平台获取accessKeySecretlet 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联系笔者删除。
笔者:苦海