前面我们讲解了在Koa项目中如何使用ES6的语法进行项目的开发,接下来我们就通过Koa进行接口的制作
- 首先作者使用的服务器为腾讯云的服务器,具体服务器根据厂商的API来操作即可。
首先该链接为腾讯云发送短信的代码链接地址
- 如图所示,我们通过腾讯云的功能即可在该位置自动生成NodeJS的接口代码。
-
然后我们只需要在左边输入框中填入对应的账户SecretID以及SecretKey即可,具体可以通过如下图所示的位置找到
//同样我们也要把我们的配置文件给引入进去
import SmsConfig from '../../dbs/config'
const router = new Router({
prefix: '/sendcode'
})
//定义请求数据的BaseURL
let Store = new Redis().client
//将Redis实例化,后期我们需要存储我们的验证码到Redis中。这样方便我们进行校验
*****
//省略部分复制粘贴的代码
*****
req.PhoneNumberSet = [`+86${phone}`]
const saveExpire = await Store.hget(`nodeSms:${phone}`,'expire')
if (saveExpire && new Date().getTime() - saveExpire < 0) {
ctx.body = {
code: -1,
msg: '验证码已发送,请勿频繁操作'
}
return false
}
await client.SendSms(req, (err,respones) => {
if (err) {
console.log(err);
return;
}
Store.hmset(`nodeSms:${SmsCode.user}`,'code',SmsCode.code,'expire',SmsCode.expire,'phone',phone)
});
//通过Redis 的hmset方法进行哈希的存储数据
//下方为返回数据格式以及信息
ctx.body = {
code: 0,
msg: '您的验证码已发送,请注意查收',
}
})
- config.js部分配置如下
//随机生成验证码
get code () {
return () => {
return Math.random().toString().slice(2, 6).toUpperCase()
}
},
//过期时间的生成
get expire () {
return () => {
// 过期时间为4个小时
return new Date().getTime() + 60 * 60 * 1000 * 4
}
}
这样我们就完成了使用腾讯云的短信功能发送验证码啦。