??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
使用node结合阿里云短信服务实现发送手机短信验证码

转载   吴勋勋007   2018-11-15   浏览量:20


一、准备工作 

前端:

    表单

    提交方式--- get 、post

        整体提交

        ajax提交

    表单验证

        正则表达式---不轻易自己写正则,不是不写,一定要考虑好兼容性(全面性)---- 提示信息的选择性

    图形验证码

        后端进行提供的一张图片,并且这张图片会对应一个字段,这个字段传递给前端,前端负责校验即可

    短信验证码

        判断是不是手机号

        如果是,那么就发送此手机号給后端,后端继续进行操作

    第三方登录

        qq登录,微信登录,微博登录

        appid appsecret appkey

后端:

    get

        url.parse(req.url, true).query

    post

        req.body

    短信验证

        1、搞定短信包----发送短信

        阿里云短信服务

        https://www.aliyun.com/

image.png

image.png

image.png

image.png

        短信接口的调用--https://help.aliyun.com/document_detail/57458.html?spm=5176.10629532.106.4.36c21cbe53q1qJ

         秘钥管理页面 -- https://ak-console.aliyun.com/?spm=a2c4g.11186623.2.5.M6srOG#/accesskey

        image.png

   image.png

 开发:

cnpm i @alicloud/sms-sdk -S

tool/mycode.js  ----  此处代码不要更改,除非你有自己的账号

const SMSClient = require('@alicloud/sms-sdk')

const accessKeyId = 'LTAIZQoVVoPuBjU9'

const secretAccessKey = 'GfJuI2dLsCQh7Q56TmFxPTniXjkVnB'

let smsClient = new SMSClient({accessKeyId, secretAccessKey})

exports.sendCode = function ( options ) {

      smsClient.sendSMS({

        PhoneNumbers: options.phoneNum,

        SignName: '吴勋勋',//按照严格意义来说,此处的签名和模板的ID都是可变的

        TemplateCode: 'SMS_111785721',

        TemplateParam: '{code:'+ options.code +'}'

    }).then(function (res) {

        let {Code}=res

        if (Code === 'OK') {

            //处理返回参数

            // console.log("111111111111111111111")

            options.success('ok')

        }

    }, function (err) {

        console.log(err)

    })

}

需要调用发送短信的地方

users.js

var url = require('url');

var async = require('async');

var { MongoClient } = require('mongodb');

var mongourl = "mongodb://localhost:27017/bk1803";

var { sendCode } = require('./mycode.js')

module.exports = {

    defaultRoute: ( req, res, next ) => {

     res.render('users');

    },

  getPhoneCode( req, res, next ){

    var { phoneNum } = url.parse( req.url, true ).query;

    async.waterfall( [

      ( cb ) => {

        MongoClient.connect( mongourl, ( err, db ) => {

          if ( err ) throw err;

          cb( null, db);

        })

      },

      ( db, cb ) => {

        db.collection('users').find({phoneNum},{_id:0}).toArray( ( err, res ) => {

          if ( err ) throw err;

          if( res.length == 0 ) {

            cb( null, 1);

          }else {

            cb( null, 0);

          }

          db.close();

        })

      }

    ], ( err, result ) => {

      if ( err ) throw err;

      if( result == 1) {

        sendCode({

          phoneNum,

          code:'3456',

          success:function(data){

            if(data == "ok"){

              res.send("1")

            }

          }

        })

      }else{

        res.send("0")

      }

    })

    

  },

  registerUserAction( req, res, next ){

    var { phoneNum, password } = req.body;

    async.waterfall( [

        ( cb ) => {

            MongoClient.connect( mongourl, ( err, db ) => {

                if ( err ) throw err;

                cb( null, db);

            })

        },

        ( db, cb ) => {

            db.collection('users').insert({phoneNum, password}, ( err, res ) =>{

          if ( err ) throw err;

          cb( null, 'ok');

          db.close()

        })

        }

    ], ( err, result ) => {

      if ( err ) throw err;

       if ( result == "ok" ){

         res.send("1")

       }else{

         res.send("0")

       }

    })

  }

}


转载自://blog.51cto.com/7123184/2317187

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



用JS实现的俄罗斯方块
javascript写的俄罗斯方块的小游戏。游戏界面就是一个html的tab表格。方块的表示就是给表格对应的格子加上背景色。
用JS实现的贪吃蛇游戏
运用前端javascript的知识,做了一个简单的贪吃蛇的小游戏。从头到尾一步一步的思路和代码。最后有完整版的代码。不过功能还不够完善,只有个大概的能玩的东西,有兴趣的话还能在优化改进。
laydate点击月份实现自动关闭功能
<pre>laydate.render({elem:'#settleMonth',type:'month',format:'yyyy-MM',showBottom:false,ready:function(date){$("#layui-laydate3").off('click').on('click','.laydate-month-listli',function(){$("#l
vue axios整合使用全攻略
这篇文章主要介绍了vueaxios整合使用全攻略,需要的朋友可以参考下
Vue+mui实现图片的本地缓存示例代码
这篇文章主要介绍了Vue+mui实现图片的本地缓存的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
linux 后台运行node服务指令方法
今天小编就为大家分享一篇linux后台运行node服务指令方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
node.js部署之启动后台运行forever的方法
今天小编就为大家分享一篇node.js部署之启动后台运行forever的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
微信小程序排坑指南详解
这篇文章主要为大家详细介绍了微信小程序排坑指南,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
基于Vue自定义指令实现按钮级权限控制思路详解
这篇文章主要介绍了基于vue自定义指令实现按钮级权限控制,本文给大家介绍的非常详细,感兴趣的朋友跟随脚本之家小编一起学习吧
swiper 自动图片无限轮播实现代码
今天移动端正好需要图片触摸滑动效果实现代码,基于swiper实现,需要的朋友可以参考下