node.js实现阿里云配置发送短信验证码
目录
开始
签名添加
模板添加
测试短信
项目中使用
Core
accessKeyId | accessKeySecret
params
PhoneNumbers
SignName
TemplateCode
TemplateParam
前台代码
4.结束
这段时间在自己准备做一个博客系统,在写登录页面的时候突然想到除了正常账号密码登录和其他第三方登录之后,在加一个手机号登录岂不是更好。说干就干,于是就是阿里云上找了一下关于短信的服务,看了一下还是比较符合我们的需求,于是就决定使用阿里云,
开始
首先项目开始我们需要配置我们的短信服务,进入阿里云搜索我们的短信服务 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
然后第一步就需要找到我们的国内信息
签名添加
第一次使用的小伙伴需要新添加我们的签名,这里添加比较严格,小伙伴如果添加失败可以多试几次,
模板添加
签名添加好了之后然后需要添加我们的模板管理
测试短信
这里我们的签名和模板都添加成功之后我们就可以测试一下短信是否可以正常发送了,
这里填写信息然后点击测试
可以拿到
然后就可以接收到短信
项目中使用
首先我们新建一个node项目
首先使用npm init初始化项目 然后依次下载 koa2 nodemon koa2-cors koa-bodyparser koa-router
然后运行项目
然后我们需要下载
yarn add @alicloud/pop-core
下载之后直接先复制到我们的项目中post请求里面
然后我们这里来一点点完善代码
Core
首先看文档可以看出我们的new Core
accessKeyId | accessKeySecret
首先就是我们的accessKeyId
我们的accessKeyId和accessKeySecret一样都需要我们自己在阿里云进行创建
然后这里的AccessKey ID和AccessKey Secret就分别是我们的accessKeyId和accessKeySecret了
后面几个参数就可以直接使用就可以了
accessKeyId: '<your-access-key-id>',
accessKeySecret: '<your-access-key-secret>',
// securityToken: '<your-sts-token>', // use STS Token
endpoint: 'https://dysmsapi.aliyuncs.com',
apiVersion: '2017-05-25'
params
到我们的params,就是我们在页面上使用的一些信息,比如电话号码,短信内容之类的,这里我们电话和短信内容肯定不能写死的,这里需要做一下特殊的处理
PhoneNumbers
首先是我们的电话号码,我们需要前台传递给我们,我们可以通过 ctx.request.body.phone
来获取电话号码,
SignName
SignName就是我们前面的标题,告诉你是谁谁谁给你发的这个短信。
TemplateCode
TemplateCode就是我们添加的模板,需要我们自己提前增加
TemplateParam
最后一个TemplateParam就是我们的验证码信息了,这里肯定不能写死,我们这里写一个函数来随机获取然后将数据赋值
// 随机验证码
function ran(num) {let code = "";for (let i = 0; i < num; i++) {let radom = Math.floor(Math.random() * 10);code += radom}return {"code": code}
}const randCode = ran(6);
然后我们的数据需要值转换为 JSON 字符串 的格式传递
最后我们的client.request可以改成我们习惯的async awati的新式,
外层使用try catch来捕获错误
try {const response = await client.request('SendSms', params, requestOption)console.log('response', response)if (response.Code === 'OK') {ctx.body = {code: '200',message: '发送成功'}} else {ctx.body = {code: '400',message: '发送失败'}}} catch (error) {console.log('error', error)}
前台代码
因为我们主要是测试发送短信的处理,前台就不做过多讲解,这里直接使用原生html请求axios
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body><input class="input" type="text" placeholder="请输入电话号码"> <button id="btn">验证</button>
</body>
<script>let val= document.querySelector('.input')document.querySelector("#btn").addEventListener("click",function (params) {console.log(val.value)var url = "http://localhost:3001/note";var paramsdataa = {phone:val.value};axios({url:url,method:'POST',data:paramsdataa}).then(function (res) {console.log(res.data);});});
</script>
</html>
接着发送请求
这里首先我们的前台已经请求成功了,也拿到请求成功的回调
然后就是我们的手机上也获取到了验证信息,
后续我们就可以将用户输入的验证码跟我们生成的验证码信息相匹配,如果匹配成功就可以继续自己需要的操作。
4.结束
到这里我们的node.js实现阿里云配置发送短信验证码就已经结束了,
完整的代码我放github上了需要的可以自取
https://github.com/cqxzq/note
如果你觉得这篇文章对您有帮助就三连支持一下呗。
如果你还有什么问题你可以选择↓↓↓
微信公众号搜索 海海学前端 来了解更多
node.js实现阿里云配置发送短信验证码相关推荐
- 基于阿里云平台的短信验证码服务API的使用
基于阿里云平台的短信验证码服务API的使用 第一步:登录阿里云平台 第二步:申请国内文本短信签名 如果是个人作业项目(如作者的签名),可以直接申请测试和学习用的测试签名,该签名的缺点是必须绑定测试手机 ...
- 基于阿里云的手机短信验证码和注册校验逻辑
基于阿里云的手机短信验证码demo实现 1. 环境依赖 2. 页面表单 html 3. 校验与短信 js 4. 工具类 SmsUtils 5. 资源调用 Servlet 阿里云的短信平台:http:/ ...
- 使用腾讯云模板发送短信验证码
目录 学习目标: 学习内容: 学习时间: 学习过程: demo结构图: 效果图: 配置准备: 依赖pom.xml application.properties: application.yml 腾讯云 ...
- java调用阿里云api发送短信验证服务
1.先在maven构建需要的jar包 <dependency><groupId>com.aliyun</groupId><artifactId>aliy ...
- Java项目使用阿里云平台发送短信说明
一.前言 项目上通过阿里云短信平台API发送短信是十分便捷的,主要是其官网使用方便,文档全面完善,因此,本篇文章重点不在于说明如何接入使用.现在各短信平台都加强了审核,导致在服务的申请和使用上存在着很 ...
- 阿里云~简单发送短信
简单三步骤:轻松发送短信 一:阿里云 1.创建一个阿里云账号 2.创建一个签名,创建模板 3.创建一个秘钥(用自己的秘钥id,以及密码) 二:代码 1.引入俩个依赖 <!-- https://m ...
- java微信发送验证码,详解如何使用微信小程序云函数发送短信验证码
其实微信小程序前端和云端都是可以调用短信平台接口发送短信的,使用云端云函数的好处是无需配置域名,也没有个数限制. 1.安装 下载后的SDK在cloudfunctions文件夹下会包含3个云函数文件夹, ...
- 使用腾讯云实现发送短信验证码登录的后端实现
话不多说, 直接开始 目录 腾讯云短信服务注册相关 发送短信 API 开发 配置相关 接口 腾讯云短信服务注册相关 ① 在腾讯云首页搜索短信 腾讯云地址: 腾讯云 - 产业智变 云启未来 搜索出来后点 ...
- 云通讯——发送短信验证码
1.首先,注册账号,容联云通讯网址:点我 2.添加一个用于测试接收短信验证码的的手机号 插件包及其使用说明 模板短信 SDK 下载: https://www.yuntongxun.com/doc/re ...
最新文章
- 以太网与802.3,wifi与802.11的关系
- 响应式编程入门:实现电梯调度模拟器
- 安装Cocoapods详细教程
- matlab逆变换法产生随机数_matlab数值积分方法(一)
- [poj1742]coin
- AIX安装中文语言包
- Android SurfaceFlinger
- 九章基础算法02:栈和队列
- 实战Python:利用Python实现基于终端的文本行编辑程序
- 东财在线计算机应用基础作业,《计算机应用基础》东财在线20秋第一套作业答案...
- 多功能科学计算机.,科学计算器多功能版
- 特效编辑器开发手记1——令人蛋疼菊紧的Cocos2d-x动态改变粒子数
- python生成图像公章_仿真印章制作——三种方法
- iOS10更新_本地通知新框架UserNotifications
- 2021中国科技大学计算机博士招生,中国科学技术大学2021年拟录取博士研究生名单公示,2661人!...
- BOF——Bag-of-Featrures
- RxJava2基础总结(二)
- 内存不能为read修复方法
- 做影视后期特效最好用什么软件?_百度知道
- 最后一次正确配置计算机,最后一次正确配置,win10恢复最近一次配置