成人免费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技術熱點

2022-03-18 21:51:10

Nest.jsAOP 架構后端

2021-01-19 10:29:34

短信驗證碼密碼

2016-11-14 15:40:01

Android

2022-01-20 10:54:23

移動手機短信驗證碼隱患

2021-12-22 06:56:06

MySQCrudjs

2025-04-01 00:44:04

2016-10-09 13:33:12

2015-03-23 18:03:36

短信驗證碼正則自動填寫

2015-09-21 15:31:05

php實現驗證碼

2021-07-22 10:25:07

JS驗證碼前端

2021-12-27 20:29:21

機制PipeExceptionFi

2021-08-02 12:29:15

Python爬蟲網站

2020-07-30 09:34:10

安全信息安全Web

2024-10-08 09:57:59

2025-04-22 09:23:37

2018-08-08 09:47:29

短信驗證碼APP

2020-01-06 13:11:30

技術工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区一区三区 | 一区二区成人 | 精品久久一区 | 一区二区三区在线观看视频 | 超碰操| 亚洲一区二区三区在线免费 | 国产高清精品一区二区三区 | 中文视频在线 | 81精品国产乱码久久久久久 | 日本一卡精品视频免费 | 国产免费福利小视频 | 国产一区二区三区在线 | 精品国产99 | 色婷婷av一区二区三区软件 | 91久久精品国产 | 久久久一区二区 | 成人在线精品视频 | 亚洲综合色自拍一区 | 一级黄色片毛片 | 少妇久久久久 | 一区二区中文 | 国产精品久久久久久久免费大片 | 日本又色又爽又黄又高潮 | 日本不卡一区二区三区在线观看 | 久久黄色网 | 草久在线 | 国产精品成人国产乱 | 中文字幕在线视频网站 | 精品一区二区三区四区五区 | 性网站免费 | 欧美精品在线免费 | 国产精品成人品 | 日日网| 一区二区av| 亚洲国产精品激情在线观看 | xxxxx黄色片 欧美一区免费 | 国产日韩精品一区 | 亚洲网站免费看 | 九九热这里只有精品在线观看 | 暖暖成人免费视频 | 欧美黑人一区 |