效果图
实现
一、准备工作
1、官网直达网址:
阿里云 - 短信服务
2、按照首页提示依次完成相应资质认证和短信模板审核;
3、获取你的accessKeySecret和accessKeyId;
方法如下:
获取AccessKey-阿里云帮助中心
4、获取SignName(签名名称)和 TemplateCode(模板code);
二、代码实现
1、项目结构
【/config/index.js】=》参数配置文件
【/server/index.js】=》主执行文件
【node server】=》启动命令
2、引入依赖
在项目根目录,打开控制台,输入如下命令:
npm install @alicloud/sms-sdk --save
3、 修改配置文件【/config/index.js】
储存前面获取的参数:
const config = {
// AccessKey ID
accessKeyId: "XXXXXXXXXXXXXXXXXXXXXXXXXX",
// AccessKey Secret
secretAccessKey: "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
// 签名名称
signName: "XXXX",
// 模板CODE => 登录/注册 - 验证码
templateCode_login: "SMS_4XXXXXXXX",
}
module.exports = config
4、修改主启动文件【/server/index.js】
实现发送短信:
// 引入依赖
const SMSClient = require('@alicloud/sms-sdk')
// 参数配置文件
const config = require('../config/index.js')
/**
* 发送短信验证码
* @param phone 接收用户的手机号
*/
function sendSmsMessage (phone) {
// 参数配置 sms_client
let accessKeyId = config.accessKeyId // AccessKey ID
let secretAccessKey = config.secretAccessKey // AccessKey Secret
let signName = config.signName // 签名名称
let templateCode = config.templateCode_login // 短信模板code
// 发送对象及验证码
let verify = Math.random().toString().slice(-6) // 随机6位验证码
let phoneNum = phone // 手机号
// 初始化 sms_client
const smsClient = new SMSClient({accessKeyId, secretAccessKey})
// 发送短信
smsClient.sendSMS({
PhoneNumbers: phoneNum, // 发送对象手机号
SignName: signName, // 签名名称
TemplateCode: templateCode, // 模版CODE
TemplateParam: `{"code":'${verify}'}`, // 短信模板变量对应的实际值,JSON格式
}).then(res => {
console.log("发送短信sendSmsMessage执行完成:")
console.log(res)
// 判断是否发送成功
if(res.Code === 'OK') {
console.log('短信发送成功!')
} else {
console.log('短信发送失败!')
console.log(res.Message)
}
}).catch(err => {
console.log("发送短信sendSmsMessage异常错误:")
console.log(err)
})
}
sendSmsMessage('13512341234')