成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Nest.Js + Sms 實現短信驗證碼登錄

開發 前端
今天和大家分享一下使用 nodejs 實現短信驗證碼登錄的方案, 通過對該方案的實現大家可以可以對 nodejs 及其相關生態有一個更深入的理解.

hi, 大家好, 我是徐小夕, 新的一年, 你又博學了嗎?

今天和大家分享一下使用 nodejs 實現短信驗證碼登錄的方案, 通過對該方案的實現大家可以可以對 nodejs 及其相關生態有一個更深入的理解.

好啦, 話不多說, 我們開始實現.

實現方案

為了更高效的開發 nodejs 應用, 這里我選擇 nest.js 作為服務端框架, 同時使用騰訊云的短信服務:

具體實現流程如下:

詳細流程如下:

  • 用戶訪問網站登錄頁面, 輸入手機號觸發驗證碼
  • node服務器收到請求后, 拼接所需參數(具體在下文會詳細介紹), 請求第三方短信服務平臺
  • 第三方短信服務平臺校驗, 通過后下發對應短信
  • 用戶在網站輸入收到的驗證碼, 請求登錄接口完成登錄

相信大家對第一步沒有太大疑問, 接下來我詳細介紹幾個核心的實現過程.

1. 短信服務的配置流程

由于我使用的是騰訊云的短信服務, 所以需要按照約定來完成以下配置:

  • 創建短信簽名

發送短信內容時必須帶簽名.

  • 創建短信模版

短信模版可以讓我們創建自定義的短信內容, 還可以創建動態內容, 大家感興趣可以研究一下.

  • 創建應用(一般使用默認即可)

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).


責任編輯:武曉燕 來源: 趣談前端
相關推薦

2022-07-20 09:52:44

Go語言短信驗證碼

2021-06-18 06:48:54

前端Nest.js技術熱點

2021-01-19 10:29:34

短信驗證碼密碼

2022-03-18 21:51:10

Nest.jsAOP 架構后端

2016-11-14 15:40:01

Android

2022-01-20 10:54:23

移動手機短信驗證碼隱患

2025-04-01 00:44:04

2021-12-22 06:56:06

MySQCrudjs

2015-03-23 18:03:36

短信驗證碼正則自動填寫

2016-10-09 13:33:12

2015-09-21 15:31:05

php實現驗證碼

2021-07-22 10:25:07

JS驗證碼前端

2021-12-27 20:29:21

機制PipeExceptionFi

2024-10-08 09:57:59

2021-08-02 12:29:15

Python爬蟲網站

2020-07-30 09:34:10

安全信息安全Web

2025-04-22 09:23:37

2018-08-08 09:47:29

短信驗證碼APP

2020-01-06 13:11:30

技術工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 密乳av | 亚洲精品www.| 一区在线观看 | 久久精品国产免费看久久精品 | 久久久久久久国产精品视频 | 国产日韩精品一区二区三区 | 午夜精品一区二区三区免费视频 | 中文字幕第一页在线 | 在线观看三级av | www狠狠干 | 视频在线一区二区 | 亚洲码欧美码一区二区三区 | 99久久精品国产毛片 | 精品欧美乱码久久久久久 | 91精品国产综合久久婷婷香蕉 | 中文字幕在线视频网站 | 久久精品一 | 久久性av| 高清一区二区 | 国产午夜精品一区二区三区嫩草 | 国产色婷婷精品综合在线播放 | 国产精品久久精品 | 日韩精品久久久久 | 国产一区在线看 | 99re国产视频 | 国产精品永久久久久久久www | 亚洲成人一区 | 日本不卡一区二区三区在线观看 | 欧美久久国产 | 国产精品视频偷伦精品视频 | 91亚洲一区 | 国产一区二区三区久久久久久久久 | 日韩精品一区二区三区视频播放 | 婷婷丁香在线视频 | 一级黄在线观看 | 亚洲精品久久久久久国产精华液 | 一级黄色绿像片 | 午夜免费看视频 | 欧美黄色大片在线观看 | 日本高清中文字幕 | 黄色一级视频免费 |