通过sails和阿里大于实现短信验证
网络编程 2021-07-04 19:20www.168986.cn编程入门
本篇文章主要介绍了通过sails和阿里大于实现短信验证的方法。具有一定的参考价值,狼蚁网站SEO优化跟着长沙网络推广一起来看下吧
通过sails与阿里大于来实现注册短信验证码的发送,逻辑图如下
1、用户在客户端发送手机号给服务器,服务器接收到手机号,生成对应时间戳,随机四位数验证码
2、服务器将电话号码和验证码告诉阿里大于服务器,阿里大于服务器将验证码发送到对应手机
3、服务器将接受到的手机号,时间戳,验证码,与服务器秘钥(为了增加秘钥破解难度,提高安全)通过md5加密生成token,并且将token与时间戳发送到前端
4、前端接收到短信,输入验证码后,再把验证码,手机号,接收到的token1和时间戳发送到服务器进行验证
5、用接收到的时间戳与服务器时间进行对比,超过时间及返回超时,需要客户端重新验证
6、没有超时遍开始核对,把第二次从客户端接收到的验证码,手机号,时间戳与服务器秘钥生成token2,如果token2与接收到的token1相同,则进行注册,如果不同则返回验证码错误
Sails代码
service文件
需要npm install alidayujs --save
//services/SmsService.js var Alidayu = require('alidayujs'); module.exports = { sendSms: function(options, done) { //应用密匙 见http://.alidayu./help?spm=a3142.7802526.1.24.iEB4Yc&_t=1#create var config = { app_key: '你的key', secret: '你的secret' }; var alidayu = new Alidayu(config); //参数 见http://open.taobao./doc2/apiDetail.htm?apiId=25450 var options = { sms_free_sign_name: '身份验证', sms_param: { code: options.code, product: '开业啦', }, rec_num: options.phoneNumber, //多个手机号逗号隔开 sms_template_code: 'SMS_36835009', }; //发送短信 alidayu.sms(options, function(err, result) { if(err) { console.log('ERROR' + err); } return done() }); } }
sails service里的方法可以全局调用,第一个参数是各种参数,第二个参数是回调函数。
sms_template_code是短信模板,需要登录阿里大于自己注册模板或者使用官方给的模板,每个模板号不一样
Controller文件
/ SendController @description :: Server-side logic for managing Sends @help :: See http://sailsjs./#!/documentation/concepts/Controllers / var crypto = require('crypto'); module.exports = { //发送短信 sendMsg: function(req, res) { var sercrt = "yhkevin"; var code = ''; var time = Date.now(); var phoneNumber = req.param('phoneNumber') var totle = '' var token = '' for(var i = 0; i < 4; i++) { code += Math.floor(Math.random() 10); } totle = sercrt + code + time + phoneNumber; sails.log('验证码是'+code) token = hash(totle); sails.log('token:' + token) SmsService.sendSms({ phoneNumber: phoneNumber, code: code }, function(err) { if(err) { return res.serverError(err); } return res.json({ token: token, time: time }); }) }, //验证验证码并且注册用户 check:function(req,res){ var sercrt = "yhkevin"; var code = req.param('code'); var time = req.param('time') var phoneNumber = req.param('phoneNumber') var token1 = req.param('token') var totle = '' var token2 = '' totle = sercrt + code + time + phoneNumber ; token2 = hash(totle); console.log(token2) if(token1 == token2){ res.json({result:'注册成功'}) }else{ res.json({err:'验证码错误'}) } } }; function hash(code) { var content = code; //加密的明文; var md5 = crypto.createHash('md5'); //定义加密方式:md5不可逆,此处的md5可以换成任意hash加密的方法名称; md5.update(content); var d = md5.digest('hex'); //加密后的值d return d; }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望多多支持狼蚁SEO!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程