亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

node.js?實(shí)現(xiàn)手機(jī)號(hào)驗(yàn)證碼登錄功能

 更新時(shí)間:2022年08月12日 09:16:49   作者:葉鮮樂  
這篇文章主要介紹了node.js?實(shí)現(xiàn)手機(jī)號(hào)驗(yàn)證碼登錄功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.注冊(cè)容聯(lián)云通信賬號(hào)(免費(fèi))

1.官網(wǎng)進(jìn)行注冊(cè):https://www.yuntongxun.com/

第二步 拿到自己的ACCOUNT_SID、AUTH_TOKENRest_URL、AppID

            

第三步注冊(cè)自己的測(cè)試手機(jī)號(hào)

第四步 下載包

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 看一下一定要全部安裝到位

第五步 寫代碼 創(chuàng)建文件夾 文件命名 自己隨意

可復(fù)制:    

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

/*
 生成指定長(zhǎng)度的隨機(jī)數(shù)
 */
function randomCode(length) {
    const chars = ['0','1','2','3','4','5','6','7','8','9'];
    const result = ""; //統(tǒng)一改名: 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;

/*
向指定號(hào)碼發(fā)送指定驗(yàn)證碼
 */
function sendCode(phone, code, callback) {
    const ACCOUNT_SID = '賬號(hào)上的 ACCOUNT_SID';
    const AUTH_TOKEN = '賬號(hào)上AUTH_TOKEN ';
    const Rest_URL = 'https://app.cloopen.com:8883';
    const AppID = '賬號(hào)上的AppID ';
    //1. 準(zhǔn)備請(qǐng)求url
    /*
     1.使用MD5加密(賬戶Id + 賬戶授權(quán)令牌 + 時(shí)間戳)。其中賬戶Id和賬戶授權(quán)令牌根據(jù)url的驗(yàn)證級(jí)別對(duì)應(yīng)主賬戶。
     時(shí)間戳是當(dāng)前系統(tǒng)時(shí)間,格式"yyyyMMddHHmmss"。時(shí)間戳有效時(shí)間為24小時(shí),如:20140416142030
     2.SigParameter參數(shù)需要大寫,如不能寫成sig=abcdefg而應(yīng)該寫成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. 準(zhǔn)備請(qǐng)求體
    const body = {
        to : phone,
        appId : AppID,
        templateId : '1',
        "datas":[code,"1"]
    }
    //body = JSON.stringify(body);

    //3. 準(zhǔn)備請(qǐng)求頭
    /*
     1.使用Base64編碼(賬戶Id + 冒號(hào) + 時(shí)間戳)其中賬戶Id根據(jù)url的驗(yàn)證級(jí)別對(duì)應(yīng)主賬戶
     2.冒號(hào)為英文冒號(hào)
     3.時(shí)間戳是當(dāng)前系統(tǒng)時(shí)間,格式"yyyyMMddHHmmss",需與SigParameter中時(shí)間戳相同。
     */
    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. 發(fā)送請(qǐng)求, 并得到返回的結(jié)果, 調(diào)用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");
// 登錄  注意:這個(gè)接口根據(jù)你自己的寫接口習(xí)慣更改  我這個(gè)接口用的是模塊化 對(duì)外暴露 在外界文件夾中引入使用
exports.login = (req,res)=>{
  let code=randomCode(6);//生成6位數(shù)字隨機(jī)驗(yàn)證碼
  console.log(code)
  sendCode("15224745090",code,function(success){
      if(success){
          res.send("短信驗(yàn)證碼已發(fā)送");
      }else{
          res.send("短信驗(yàn)證碼發(fā)送失敗");
      }
  })

}

到此這篇關(guān)于node.js 實(shí)現(xiàn)手機(jī)號(hào)驗(yàn)證碼登錄功能的文章就介紹到這了,更多相關(guān)node.js 手機(jī)號(hào) 驗(yàn)證碼 登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • node.js從數(shù)據(jù)庫獲取數(shù)據(jù)

    node.js從數(shù)據(jù)庫獲取數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了node.js從數(shù)據(jù)庫獲取數(shù)據(jù)的具體代碼,nodejs可以獲取具體某張數(shù)據(jù)表信息,感興趣的朋友可以參考一下
    2016-05-05
  • node.js中的fs.chownSync方法使用說明

    node.js中的fs.chownSync方法使用說明

    這篇文章主要介紹了node.js中的fs.chownSync方法使用說明,本文介紹了fs.chownSync的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • node.js中joi模塊的基本使用方式

    node.js中joi模塊的基本使用方式

    這篇文章主要介紹了node.js中joi模塊的基本使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Node.js connect ECONNREFUSED錯(cuò)誤解決辦法

    Node.js connect ECONNREFUSED錯(cuò)誤解決辦法

    這篇文章主要介紹了Node.js connect ECONNREFUSED錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Node.js工具庫yeoman使用介紹

    Node.js工具庫yeoman使用介紹

    這篇文章主要為大家介紹了Node.js工具庫yeoman的使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 淺談node.js中async異步編程

    淺談node.js中async異步編程

    本文嘗試結(jié)合Marc Fasel的指導(dǎo)思想和筆者的實(shí)踐經(jīng)驗(yàn)來介紹一些NodeJS的異步編程風(fēng)格,希望對(duì)NodeJS的初學(xué)者有所啟發(fā)。
    2015-10-10
  • Node 模塊原理與用法詳解

    Node 模塊原理與用法詳解

    這篇文章主要介紹了Node 模塊原理與用法,結(jié)合實(shí)例形式詳細(xì)分析了node.js模塊基本概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • 在NodeJs中使用node-schedule增加定時(shí)器任務(wù)的方法

    在NodeJs中使用node-schedule增加定時(shí)器任務(wù)的方法

    這篇文章主要介紹了從零開始在NodeJs中使用node-schedule增加定時(shí)器任務(wù)的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • node.js程序作為服務(wù)并在windows下開機(jī)自啟動(dòng)(用forever)

    node.js程序作為服務(wù)并在windows下開機(jī)自啟動(dòng)(用forever)

    這篇文章主要介紹了node.js程序作為服務(wù)并在windows下開機(jī)自啟動(dòng)的相關(guān)資料,因?yàn)閷?shí)現(xiàn)的功能比較簡(jiǎn)單,沒有選擇功能比較強(qiáng)大的pm2,文中選擇利用了forever,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • Node.js 應(yīng)用跑得更快 10 個(gè)技巧

    Node.js 應(yīng)用跑得更快 10 個(gè)技巧

    Node.js 受益于它的事件驅(qū)動(dòng)和異步的特征,已經(jīng)很快了。本文將介紹 10 條,經(jīng)過檢驗(yàn)得知可大大提高 Node 應(yīng)用的技巧。廢話不多說,讓我們逐條來看看
    2016-04-04

最新評(píng)論