当前位置: 首页 > 后端技术 > Node.js

Node连接阿里云实现短信验证码

时间:2023-04-03 15:16:18 Node.js

本文介绍案例云开通短信服务的流程和Node项目中使用的方法。1:阿里云短信服务开通方法参考官方文档。二:获取AccessKey调用短信服务需要通过AccessKey认证。登录阿里云,进入https://usercenter.console.al...,创建AccessKey,获取accessKeyId和accessKeySecret。3.费用支付4.节点调用@alicloud/pop-core是阿里提供的核心库,需要在项目中引入:npminstall@alicloud/pop-core-S下面是sms的示例代码。js,其中SignName/TemplateCode/accessKeyId/accessKeySecret必须从阿里云获取,请替换为实际值。/***sms.send(手机号)发送短信验证码*sms.verify(手机号,验证码)检查验证码是否正确**/constcore=require('@alicloud/pop-core');const_=require('lodash');//阿里云控制台-短信服务-国内消息constSignName="东方网络";constTemplateCode="SMS_123456";//https://usercenter.console.aliyun.com/constaccessKeyId="ljksdhfjklJKGKGKJHK";constaccessKeySecret="HKAJSHDIU90800980jkahsd";varclient=newCore({accessKeyId,accessKeySecret,endpoint:'https://dysmsapi.aliyuncs.com',apiVersion:'2017-}05);//保存电话号码和验证码的对应关系//phone_code_list={'18855551234':['1024']}varphone_code_list={};exports.send=function(phone){//生成验证码varcode=""+_.random(9)+_.random(9)+_.random(9)+_.random(9);returnnewPromise((resolve,reject)=>{try{client.request('SendSms',{RegionId:"cn-hangzhou",PhoneNumbers:phone,SignName,TemplateCode,TemplateParam:"{code:"+code+"}"},{method:'POST'}).then((result)=>{if(result.Message&&result.Message=="OK"&&result.Code&&result.Code=="OK"){//短信发送成功//保存验证码if(phone_code_list[phone]){phone_code_list[phone].push(code);}else{phone_code_list[phone]=[code];}//三分钟后删除验证码setTimeout(()=>{_.pull(phone_code_list[phone],code);if(phone_code_list[phone]&&phone_code_list[phone].length==0){删除phone_code_list[phone];}},3*60*1000)resolve(result)}else{reject(result)}},(ex)=>{reject(ex)})}catch(error){reject(error)}})}出口。verify=function(phone,code){return(phone_code_list[phone].indexOf(code)>-1)}调用方法参考:constsms=require("./util/sms.js")//发送验证码短信.send("18855551234").then((result)=>{console.log("短信发送成功")console.log(result)},(ex)=>{console.log("短信发送失败")console.log(ex)});//验证用户提交的验证码varisCodeRight=sms.verify("18855551234","0000");//返回真/假