手机版

通过帆和阿里短信验证大于

时间:2021-09-06 来源:互联网 编辑:宝哥软件园 浏览:

通过帆和阿里大比发送注册短信验证码。逻辑图如下

1.用户在客户端将手机号码发送给服务器,服务器接收手机号码并生成相应的时间戳和随机四位验证码

2.服务器将电话号码和验证码告诉阿里达服务器,阿里达服务器将验证码发送给对应的手机

3.服务器对接收到的手机号码、时间戳、验证码和服务器密钥进行加密(为了增加密钥破解难度,提高安全性)生成令牌,并将令牌和时间戳发送给前端

4.接收到短信后,前端输入验证码,然后将验证码、手机号、接收到的令牌1和时间戳发送给服务器进行验证

5.将收到的时间戳与服务器时间进行比较。如果超过时间并返回超时,客户端需要重新验证

6.开始检查,不要超时。根据第二次从客户端接收的验证码、手机号码和时间戳以及服务器密钥生成令牌2。如果令牌2与接收到的令牌1相同,请注册它。如果不同,返回验证码错误。

风帆代码:

服务文件

需要Npm安装alidayujs - save

//services/smsservice . js var Aldayu=require(' Aldayujs ');module.exports={ sendsms:函数(options,done){//有关应用程序密钥,请参见http://www.alidayu.com/help?SPM=a 3142 . 7802526 . 1 . 24 . ieb4yc _ t=1 # create varconfig={ app _ key : '您的密钥',secret: '您的秘密' };var Alidayu=new Alidayu(config);//有关参数,请参见:http://open.taobao.com/doc2/apiDetail.htm? Api id=25450 varoptions={ SMS _ free _ sign _ name : ' authentication ',SMS _ param3360 {code:options。代码,product: '开业',},Rec _ num : options . phone number,//多个电话号码用逗号隔开SMS _ template _ code : ' SMS _ 36835009 '。};//发送短消息alidayu.sms(选项,函数(err,result){ if(err){ console . log(' error ' err);} return done()});} } sails service中的方法可以全局调用。第一个参数是各种参数,第二个参数是回调函数。

Sms_template_code是一个短信模板。你需要登录阿里注册一个比自己大的模板或者使用官方给的模板。每个模板编号都不同

控制器文件:

/** *发送控制器* * @描述:用于管理发送的服务器端逻辑* @帮助:参见http://sailsjs.org/#!/文档/概念/控制器*/var crypto=require(' crypto ');module.exports={ //发送短信发送Msg:函数(req,RES){ var sercrt=' yh Kevin ';定义变量代码=' ';var time=date。now();可变电话号码=请求。param('电话号码')var totle=' ' var token=' ' for(var I=0;i4;I){代码=数学。地板(数学。random()* 10);} totle=sercrt代码时间phoneNumber' sails.log('验证码是:' code)token=hash(totle);帆。日志(' token : ' token)smsservice。sendsms({电话号码:电话号码,代码:代码}),函数(err){ if(err){ return RES . server err(err);}返回res.json({ token: token,time : time });}) }, //验证验证码并且注册用户check:function(req,RES){ var sercrt=' yh Kevin ';var代码=请求。参数('代码');变化时间=请求。参数('时间')变化电话号码=请求。param('电话号码')var token 1=req。param(' token ')var totle=' var token 2=' ' totle=sercrt代码时间电话号码;token 2=hash(totle);console.log(令牌2)如果(令牌1==令牌2){ res.json({result: '注册成功}) }else{ res.json({err: '验证码错误'}) } }};函数hash(code){ var content=code;//加密的明文;var MD5=加密。创建哈希(' MD5 ');//定义加密方式:md5不可逆,此处的讯息摘要5可以换成任意混杂加密的方法名称;md5.update(内容);var d=MD5。摘要(' hex ');//加密后的值d返回d .}以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!

版权声明:通过帆和阿里短信验证大于是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。