登录注册——NodeJS+阿里云短信验证

第一步:阿里云的短信服务配置

阿里云官网:https://www.aliyun.com

1】进行登录注册

2】查询短信服务

3】进入到控制台

4】在控制台上发现如下部分:

5】新手引导内容如下,按照这个步骤一步步来:

 

 6】短信签名和模板:

 7】申请accessKeyId和accessKeySecret

 8】找到开发指南中的文档进行操作和联系,这里选择的是旧版的短信发送的方法。

https://help.aliyun.com/document_detail/57458.html?spm=a2c4g.11186623.6.682.21375f30q9yZpJ

 

第二步:代码实践

1】下载相关的模块:npm install @alicloud/sms-sdk --save

 users.js

var express = require('express');
var router = express.Router();
const SMSClient = require('@alicloud/sms-sdk'); //导入模块
/* GET users listing. */
//初始化sms_client
let smsClient = new SMSClient({accessKeyId:"阿里云上的id", 
                               secretAccessKey:"阿里云上的密钥"})//阿里云上的id和密钥
//验证码
var codes=""; for(let i=0;i<6;i++){ codes=codes+Math.floor(Math.random()*10); }
router.post(
'/yzm', function(req, res, next) { var phone = req.body.phone; //从前端获取到手机号码 //发送短信 if(phone!=" "){ //手机号不为空 console.log(codes); smsClient.sendSMS({ PhoneNumbers: phone,//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为:国际区号+号码,如“85200000000” SignName: 'mall验证码',//必填:短信签名-可在短信控制台中找到
   // TemplateCode: '短信模板',//必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版 // TemplateParam: `{\"code\":\"${codes}\"}` //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时。 TemplateParam: `{\"code\":\"${codes}\"}` }).then(function (res) { let {Code}=res if (Code === 'OK') { //处理返回参数 console.log(res) } }, function (err) { console.log(err); }); res.redirect("/"); } }); module.exports = router;

ejs页面register.ejs:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>注册</title>
    <link rel="stylesheets" type="text/css" href="../public/stylesheets/style.css">
</head>
<body>
    <h1>新用户注册</h1>
    <form action="/users/yzm" method="POST">
        <input type="text" name="phone">
        <button type="submit">点击获取验证码</button>
    </form>
</body>
</html>

 

第三步:运行项目

页面:

 

短信发送结果:

 

 
posted @ 2020-07-20 11:51  Qing#Ci  阅读(650)  评论(0编辑  收藏  举报