我们开发的应用通常需要通过手机短信验证码验证进行登录,方便了那些容易忘记密码的用户,同时也降低了是密码被盗的风险性。

文章目录

  • 1.注册容联云通信账号(免费)
  • 2.nodejs发送请求即可发送短信验证码

1.注册容联云通信账号(免费)

1.点击这里进入官网进行注册:

正确填写信息注册即可。

2.进入管理控制台

刚注册的用户是有8块赠送金额用于发送短信验证码。下面四个涂鸦信息就是关键信息,需要在nodejs服务端使用,最好不要暴露。

3.点击“测试号码”
由于我们开发时,应用都是未上线的,所以在开发时只有设置了测试账号才可以发送短信,我们也不必去设置短信的模板,因为那是要充值了300元以上才可以使用。


测试号码最多可以添加三个。

2.nodejs发送请求即可发送短信验证码

在容联云通信的文档中有其它后端语言的发送短信demo,很不幸就是没有nodejs的,那只能按照接口文档自己写nodejs版本的了。

1.首先引入各种要用到的包:

1.npm i md5 --save
2.npm i moment --save
3.npm i js-base64 --save
4.npm i request --save

上源码:utils/getMessage.js

var md5 = require('blueimp-md5')
var moment = require('moment')
var Base64 = require('js-base64').Base64;
var request = require('request');/*生成指定长度的随机数*/
function randomCode(length) {var chars = ['0','1','2','3','4','5','6','7','8','9'];var result = ""; //统一改名: alt + shift + Rfor(var i = 0; i < length ; i ++) {var index = Math.ceil(Math.random()*9);result += chars[index];}return result;
}
// console.log(randomCode(6));
exports.randomCode = randomCode;/*
向指定号码发送指定验证码*/
function sendCode(phone, code, callback) {var ACCOUNT_SID = '8aaf0708751c249f01752faf7d0160';var AUTH_TOKEN = 'ad0e93aa506d4338b674b9f60ee5e6';var Rest_URL = 'https://app.cloopen.com:8883';var AppID = '8aaf0708751c249f0175204fb00166';//1. 准备请求url/*1.使用MD5加密(账户Id + 账户授权令牌 + 时间戳)。其中账户Id和账户授权令牌根据url的验证级别对应主账户。时间戳是当前系统时间,格式"yyyyMMddHHmmss"。时间戳有效时间为24小时,如:201404161420302.SigParameter参数需要大写,如不能写成sig=abcdefg而应该写成sig=ABCDEFG*/var sigParameter = '';var time = moment().format('YYYYMMDDHHmmss');sigParameter = md5(ACCOUNT_SID+AUTH_TOKEN+time);var url = Rest_URL+'/2013-12-26/Accounts/'+ACCOUNT_SID+'/SMS/TemplateSMS?sig='+sigParameter;//2. 准备请求体var body = {to : phone,appId : AppID,templateId : '1',"datas":[code,"1"]}//body = JSON.stringify(body);//3. 准备请求头/*1.使用Base64编码(账户Id + 冒号 + 时间戳)其中账户Id根据url的验证级别对应主账户2.冒号为英文冒号3.时间戳是当前系统时间,格式"yyyyMMddHHmmss",需与SigParameter中时间戳相同。*/var authorization = ACCOUNT_SID + ':' + time;authorization = Base64.encode(authorization);var headers = {'Accept' :'application/json','Content-Type' :'application/json;charset=utf-8','Content-Length': JSON.stringify(body).length+'','Authorization' : authorization}//4. 发送请求, 并得到返回的结果, 调用callback// callback(true);request({method : 'POST',url : url,headers : headers,body : body,json : true}, function (error, response, body) {callback(body.statusCode==='000000');});
}
exports.sendCode = sendCode;

你们要使用时只需将ACCOUNT_SIDAUTH_TOKENRest_URLAppID换成自己在官网申请的数据即可。(上面四个数据已被我更改)

使用示例:

const express = require("express");
const {randomCode,sendCode}=require("./utils/getMessage");const app=express();//实例app.get("/login",(req,res)=>{let code=randomCode(6);//生成6位数字随机验证码sendCode("测试号码",code,function(success){if(success){res.send("短信验证码已发送");}else{res.send("短信验证码发送失败");}})
})const server=app.listen(4200,function(){const {address,port}=server.address();console.log(address,port);console.log("HTTP服务已启动");
})

启动nodejs服务器,在浏览器访问localhost:4200将会发送手机验证码。

如对你有帮助,请点赞。

Nodejs实现给手机发送短信验证码用于登录功能(免费短信)相关推荐

  1. 06-发送短信验证码实现登录功能

    1.发送短信验证码实现登录功能的流程 1.1.获取验证码流程 1.2.登录流程 1.3.页面带有图形验证码的流程 2. 注册登录二合一页面的开发 2.1.将src目录下的App.vue页面上通用显示的 ...

  2. SpringBoot 实现手机发送短信验证码

    手机发送短信 内容 一.手机发送短信 1. 前端界面代码 2. UserInfoController 控制器 3. application.properties 配置类文件 4. 具体实现 总结 内容 ...

  3. php实现短信找回密码,thinkphp5怎么调用云片接口实现发送短信验证码找回密码功能...

    thinkphp5怎么调用云片接口实现发送短信验证码找回密码功能 发布时间:2020-12-11 12:33:42 来源:亿速云 阅读:60 作者:小新 小编给大家分享一下thinkphp5怎么调用云 ...

  4. html5实现短信验证修改密码,thinkphp5如何调用云片接口实现发送短信验证码找回密码功能...

    下面由thinkphp框架教程栏目给大家介绍thinkphp5如何调用云片接口实现发送短信验证码找回密码功能,希望对需要的朋友有所帮助! 思路: 1.用户输入手机号,请求获取短信验证码. 2.thin ...

  5. Java实现手机发送短信验证码

    发送短信验证码首先要在互亿无线短信平台去开通短信服务,地址"ihuyi.com" 一定要留好自己申请的API ID,API key和模板 参数说明: 代码示例: pom导包 < ...

  6. 手机发送短信验证码登录完整实例

    项目需求 后台生成随机6位数作为验证码,发送给手机,同时将验证码存入缓存,用户登录时验证输入的验证码是否过期或者是否正确. 一.发送短信 1.了解短信发送 通过发送短信的API,建立一个URL类的对象 ...

  7. java给手机发短信_java给手机发送短信验证码

    最近在做项目,分配到一个使用手机验证码实现快速登录的需求,好了No B B 了直接进入主题. 首先进入官网(http://www.miaodiyun.com/) 进行注册登录,这个不用教吧. 注册登录 ...

  8. 【前端】jQuery手机发送短信验证码定时器

    //短信发送$('.vcode-send').click(function () {/*发送前端验证码按钮变化*/if ($(this).hasClass('disabled')) {} else { ...

  9. 发送短信验证码执行登录操作

    短信服务介绍: 目前市场上有很多第三方提供的短信服务,这些第三方短息服务会和各个运营商(移动,联通,电信)对接,我们只需要注册成为会员,并且按照提供的开发文档进行调用就可以完成发送短信,需要说明的是, ...

最新文章

  1. 不用工具箱的神经网络matlab程序_MATLAB中的神经网络工具箱(2)函数命令及模型搭建...
  2. 基于移动位置服务器,移动定位服务器的设计与实现
  3. 【控制】《多智能体机器人系统信息融合与协调》范波老师-第8章-Agent 技术在机器人智能控制系统的应用
  4. WindowsFormsHost使用问题
  5. LeetCode 536. 从字符串生成二叉树(递归)
  6. 小程序开发(9)-之地图组件map、导航
  7. 扩展log4j系列[二]为DailyRollingFileAppender加上maxBackupIndex属性
  8. ARM开发7.5.2 基础实训( 6 ) 4×4 矩阵键盘和 2 路 LED 显示系统( 2 )--LPC21XX
  9. DIY_红外计数模块
  10. android studio 模拟器很慢,解决AndroidStudio模拟器卡慢的问题
  11. 程序员毕业去大公司好还是小公司好?
  12. 好的用户界面-界面设计的一些技巧
  13. Java飞机大战小游戏练习
  14. 吴章金: 实例解析 Linux C 语言程序之变量类型
  15. cocos creator接入微信登陆sdk ios篇
  16. 三节课产品经理P1 作业
  17. Python之dir()与__dict__的区别
  18. PHP+JS写一个博客系统
  19. 《算法导论》第三版第31章 数论算法 练习思考题 个人答案
  20. Fiddle 抓取手机请求(HTTPS)

热门文章

  1. vue.js (制作电商网站)知识点总结一 待补充
  2. idea 2020取消Import Maven projects automatically
  3. Excel 2010 VBA 入门 052 DateAdd函数
  4. Android 百度地图开发问题----解决地图有时候加载不出来问题
  5. iOS 第三方框架-Masonry介绍与使用实践
  6. SC系列(SC-12S)低频率小型SMD石英晶振SC-12S32.768KHZ12.5PF/20PPM
  7. 自己动手写数据库系统:容灾恢复原理和容灾恢复日志的设计
  8. 单片机实验三(1):中断处理,定时器
  9. Java闭关修炼64课 很适合新手学习的JAVA视频教程
  10. 数据科学与计算机学院凌云,向凌云副教授