亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node.js如何實現手機號驗證碼登錄功能

發布時間:2022-08-12 10:46:45 來源:億速云 閱讀:255 作者:iii 欄目:開發技術

本篇內容介紹了“node.js如何實現手機號驗證碼登錄功能”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1.注冊容聯云通信賬號(免費)

node.js如何實現手機號驗證碼登錄功能

第二步 拿到自己的ACCOUNT_SIDAUTH_TOKENRest_URLAppID

node.js如何實現手機號驗證碼登錄功能

第三步注冊自己的測試手機號

node.js如何實現手機號驗證碼登錄功能

第四步 下載包

1.npm i md5 --save
2.npm i moment --save
3.npm i js-base64 --save
4.npm i request --save

一次下載 :npm i md5 moment js-base64 request --save 注意:package.json 看一下一定要全部安裝到位

第五步 寫代碼 創建文件夾 文件命名 自己隨意

可復制:    

const md5 = require('blueimp-md5')
const moment = require('moment')
const Base64 = require('js-base64').Base64;
const request = require('request');

/*
 生成指定長度的隨機數
 */
function randomCode(length) {
    const chars = ['0','1','2','3','4','5','6','7','8','9'];
    const result = ""; //統一改名: alt + shift + R
    for(var i = 0; i < length ; i ++) {
        var index = Math.ceil(Math.random()*9);
        result += chars[index];
    }
    return result;
}
// console.log(randomCode(6));
exports.randomCode = randomCode;

/*
向指定號碼發送指定驗證碼
 */
function sendCode(phone, code, callback) {
    const ACCOUNT_SID = '賬號上的 ACCOUNT_SID';
    const AUTH_TOKEN = '賬號上AUTH_TOKEN ';
    const Rest_URL = 'https://app.cloopen.com:8883';
    const AppID = '賬號上的AppID ';
    //1. 準備請求url
    /*
     1.使用MD5加密(賬戶Id + 賬戶授權令牌 + 時間戳)。其中賬戶Id和賬戶授權令牌根據url的驗證級別對應主賬戶。
     時間戳是當前系統時間,格式"yyyyMMddHHmmss"。時間戳有效時間為24小時,如:20140416142030
     2.SigParameter參數需要大寫,如不能寫成sig=abcdefg而應該寫成sig=ABCDEFG
     */
    const sigParameter = '';
    const time = moment().format('YYYYMMDDHHmmss');
    sigParameter = md5(ACCOUNT_SID+AUTH_TOKEN+time);
    const url = Rest_URL+'/2013-12-26/Accounts/'+ACCOUNT_SID+'/SMS/TemplateSMS?sig='+sigParameter;

    //2. 準備請求體
    const body = {
        to : phone,
        appId : AppID,
        templateId : '1',
        "datas":[code,"1"]
    }
    //body = JSON.stringify(body);

    //3. 準備請求頭
    /*
     1.使用Base64編碼(賬戶Id + 冒號 + 時間戳)其中賬戶Id根據url的驗證級別對應主賬戶
     2.冒號為英文冒號
     3.時間戳是當前系統時間,格式"yyyyMMddHHmmss",需與SigParameter中時間戳相同。
     */
    const authorization = ACCOUNT_SID + ':' + time;
    authorization = Base64.encode(authorization);
    const headers = {
        'Accept' :'application/json',
        'Content-Type' :'application/json;charset=utf-8',
        'Content-Length': JSON.stringify(body).length+'',
        'Authorization' : authorization
    }

    //4. 發送請求, 并得到返回的結果, 調用callback
      // callback(true);
    request({
        method : 'POST',
        url : url,
        headers : headers,
        body : body,
        json : true
    }, function (error, response, body) {
        callback(body.statusCode==='000000');
    });
}
exports.sendCode = sendCode;

第六步 在接口文件夾引入

const {randomCode,sendCode}=require("../utils/getMessage");
// 登錄  注意:這個接口根據你自己的寫接口習慣更改  我這個接口用的是模塊化 對外暴露 在外界文件夾中引入使用
exports.login = (req,res)=>{
  let code=randomCode(6);//生成6位數字隨機驗證碼
  console.log(code)
  sendCode("15224745090",code,function(success){
      if(success){
          res.send("短信驗證碼已發送");
      }else{
          res.send("短信驗證碼發送失敗");
      }
  })

}

“node.js如何實現手機號驗證碼登錄功能”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜兴市| 邵武市| 依兰县| 平罗县| 九龙坡区| 云和县| 丽水市| 山东| 岳西县| 濮阳县| 建德市| 延边| 苏州市| 大同县| 渭源县| 沙河市| 咸阳市| 五家渠市| 商都县| 盐池县| 宁德市| 长春市| 伊春市| 河间市| 蒲江县| 芦溪县| 六盘水市| 汝南县| 买车| 安仁县| 台南县| 麻阳| 秦皇岛市| 南丰县| 康保县| 曲阳县| 抚宁县| 英吉沙县| 尚义县| 安顺市| 阳朔县|