当前位置:首页 » caiji » 正文

nest.js+sms实现短信验证码登录

391 人参与  2022年02月06日 16:51  分类 : caiji  评论

免费的无纺布手提袋在线报价,输入规格参数,全程10秒钟出价格,方便快捷,欢迎使用!

无纺布厂15838056980本文首发于: 趣谈前端hi, 大家好, 我是徐小夕, 新的一年, 你又博学了吗?今天和大家分享一下使用 nodejs 实现短信验证码登录的方案, 通过对该方案的实现大家可以可以对 nodejs 及其相关生态有一个更深入的理解.好啦, 话不多说, 我们开始实现.实现方案为了更高效的开发 nodejs 应用, 这里我选择 nest.js 作为服务端框架, 同时使用腾讯云的短信服务:具体实现流程如下:详细流程如下:用户访问网站登录页面, 输入手机号触发验证码node服务器收到请求后, 拼接所需参数(具体在下文会详细介绍), 请求第三方短信服务平台第三方短信服务平台校验, 通过后下发对应短信用户在网站输入收到的验证码, 请求登录接口完成登录相信大家对第一步没有太大疑问, 接下来我详细介绍几个核心的实现过程.1. 短信服务的配置流程由于我使用的是腾讯云的短信服务, 所以无纺布厂15838056980需要按照约定来完成以下配置:创建短信签名发送短信内容时必须带签名.创建短信模版短信模版可以让我们创建自定义的短信内容, 还可以创建动态内容, 大家感兴趣可以研究一下.创建应用(一般使用默认即可)2. nodejs服务器向短信服务平台发起短信调用以上配置完成并审核通过之后, 我们就可以使用 nodejs 愉快的发送短信了. 这里我们需要安装腾讯云的sdk:# nest项目中 npm install tencentcloud-sdk-nodejs --save 然后在 nest 服务端存储上一步获取的:用户手机号SmsSdkAppId(应用id)TemplateId(模版id)SignName(签名内容)TemplateParamSet(需要发送的验证码)核心代码如下:/** * 发送手机验证码 * @param params 请求体 */ async registerCode(params: any): Promise<any> { const { phone } = params; if (!phone) { return { code: 400, msg: 手机号为空, }; } const code = `${rand(1000,9999)}`; phoneCodeList[phone] = code; const smsParams = { "PhoneNumberSet": [ `+86${phone}` ], "SmsSdkAppId": "xxxxx", "TemplateId": "12*****", "SignName": "dooring服务", "TemplateParamSet": [code] }; try { const result = await client.SendSms(smsParams); if(result?.SendStatusSet.Code === Ok) { return { code: 200, msg: Success, }; }else { return { code: 500, msg: `Service error: ${result?.SendStatusSet.Message}`, }; } }catch(err) { return { code: 500, msg: `Service error: ${err}` }; } } 以上是用 nest 写的一个简单的 service 逻辑, 主要功能是发送用户手机号和签名参数到第三方短信平台, 下发短信. TemplateParamSet字段为一个数组, 数组长度取决于我们的短信模版中动态变量的配置, 如下:如果我们配置的模版内容中有2个变量, 那么TemplateParamSet字段 的数组为2项.3. nodejs实现短信验证码验证最后一步比较简单. 我们只需要把用户填写的验证码和我们服务器生成的验证码进行比对即可, 我们可以使用 redis 来缓存验证码.最终的实现效果如下:当然大家可以用自己熟悉的任何 nodejs 框架来实现以上功能(如koa, egg).更多技术分享: 趣谈前端好啦, 今天的分享就到这啦, 如果文章对你有帮助, 欢迎 「点赞」 + 「评论」, 鼓励作者创造更优质的内容~

微信号:15838056980
添加微信好友, 获取更多信息
复制微信号

来源:无纺布网,转载请保留出处和链接,部分文章来源于网络转载,如有侵权请留言删除!

本文链接:http://hnwfb.cn/post/2747.html

  >>>欢迎发布各种无纺布行业信息,请编辑好信息后发送到邮箱:799881124@qq.com

0

无纺布行业交流微信公众号:wfbmfd 欢迎关注!

订购无纺布,请联系:15838056980

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

本站发布部分无纺布行业新闻内容来源于网络,如有侵权请留言删除,谢谢!

Copyright Your WebSite.Some Rights Reserved.

×
复制成功
微信号: 15838056980
添加微信好友, 获取更多信息
我知道了
添加微信
微信号: 15838056980
添加微信好友, 获取更多信息
一键复制加过了
4008889996
微信号:15838056980添加微信