本文将实现阿里云中短信服务的【短信验证码功能】
第一步先要到阿里云平台去申请短信签名和模版(如果已完成可以忽略这一步)。
- 首选需要有阿里云账号,进入阿里云【短信服务控制台】,可以在搜索栏搜索短信服务
- 进入短信服务控制台后,点击 国内消息 >> 模版签名 >> 添加签名,按照提示去添加即可,蒹添加后就等候审核通过
- 添加短信模版, 点击 模版管理 >> 添加模版,根据提示添加,这次测试就用系统送的模版。
- 注意:因为后续开辟要用到的是数据是【签名名称】【模版CODE】【accessKeyId】【secretAccessKey】,所以要做好准备。 accessKeyId 和 secretAccessKey 在右上角用户头像点击可以看到【AccessKey管理】,点击进去内里可以获取,注意,这id和key比较重要,千万不要暴暴露去。
短信模版的信息都准备好了之后,下面就可以开辟步伐了
- 首先需要确定是否安装express,如果已安装可以忽略这一步
- cnpm install -g express-generator
复制代码- cnpm i @alicloud/sms-sdk --save
复制代码
- 在app.js里修改代码,将短信接口模块单独出来
- 在routes文件夹下添加api.js文件
- var express = require('express');var router = express.Router();//引入阿里云短信服务模块const SMSClient = require('@alicloud/sms-sdk');// 产生6位随机数(用来生成短信验证码的)function getCode() { let str = ""; for (let i = 0; i < 6; i++) { str += parseInt(Math.random() * 10) } return str;}/ ** *这里写post请求接口,前端调用 http://localhost:3000/api/get_sms *默认端口是3000,也可以在./bin/www内里修改 */router.post('/get_sms', function(req, res, next) { let phoneNum = req.body.phone; //获取前端参数phone console.log("手机号码", phoneNum); //初始化sms_client let smsClient = new SMSClient({ accessKeyId: 'LTAI4G**************', //accessKeyId 前面提到要准备的 secretAccessKey: 'C2w************' //secretAccessKey 前面提到要准备的 }); 6位随机数 let str = getCode(); // 开始发送短信 smsClient.sendSMS({ PhoneNumbers: phoneNum, SignName: "sign****", //签名名称 前面提到要准备的 TemplateCode: "SMS_**********", //模版CODE 前面提到要准备的 TemplateParam: `{"code":'${str}'}`, // 短信模板变量对应的实际值,JSON格式 }).then(result => { console.log("result", result) let {Code} = result; if (Code == 'OK') { res.json({ code: 0, msg: 'success', sms: str }) console.log(result) } }).catch(err => { console.log(err); res.json({ code: 1, msg: 'fail: ' + err.data.Message }) })});module.exports = router;
复制代码
- 这里写完之后,生存,在终端执行下令npm start之后,既可以运行了。这里只是简朴实现了接入阿里云短信服务的短信功能,并没有做其他验证。可以相对改变一下,比如做注册短信验证,可以把生成的6位随机数也传给注册接口举行验证。这里就不多写了,自由发挥!!!!
学无止境,加油骚年
来源:https://blog.csdn.net/weixin_39644462/article/details/111959108
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |