成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

開(kāi)發(fā)中使用 【容聯(lián) 云通信】獲取短信驗(yàn)證碼的 Javascript 接口

buildupchao / 2977人閱讀

摘要:開(kāi)發(fā)中使用容聯(lián)云通信獲取短信驗(yàn)證碼的接口注冊(cè)賬號(hào),注冊(cè)后送元,開(kāi)發(fā)試用可以用很久了。在測(cè)試號(hào)碼中綁定測(cè)試手機(jī)號(hào)碼,只有這個(gè)號(hào)碼能接收驗(yàn)證短信。其中賬戶(hù)和賬戶(hù)授權(quán)令牌根據(jù)的驗(yàn)證級(jí)別對(duì)應(yīng)主賬戶(hù)。

開(kāi)發(fā)中使用 【容聯(lián) 云通信】獲取短信驗(yàn)證碼的 Javascript 接口

注冊(cè)賬號(hào):https://www.yuntongxun.com/,注冊(cè)后送8元,開(kāi)發(fā)試用可以用很久了。

在平臺(tái)應(yīng)用列表添加應(yīng)用。

在測(cè)試號(hào)碼中綁定測(cè)試手機(jī)號(hào)碼,只有這個(gè)號(hào)碼能接收驗(yàn)證短信。

在項(xiàng)目中綁定配置:將控制臺(tái)首頁(yè)的開(kāi)發(fā)者主賬號(hào)信息粘貼復(fù)制進(jìn)下列接口代碼的相應(yīng)位置。

一個(gè)前后臺(tái)分離的應(yīng)用,在后臺(tái)項(xiàng)目目錄下建立 util文件夾,建立util/sms_util.js文件,文件內(nèi)寫(xiě)使用 【容聯(lián) 云通信】平臺(tái)獲取短信驗(yàn)證碼的 Javascript 接口代碼:

// 容聯(lián)云通信 短信驗(yàn)證碼接口

var md5 = require("blueimp-md5")
var moment = require("moment")
var Base64 = require("js-base64").Base64;
var request = require("request");

/*
生成指定長(zhǎng)度的隨機(jī)數(shù)
 */
function randomCode(length) {
    var chars = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
    var 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)證碼
 */
// 將控制臺(tái)首頁(yè)的開(kāi)發(fā)者主賬號(hào)信息粘貼復(fù)制進(jìn)下列接口代碼的相應(yīng)位置
function sendCode(phone, code, callback) {
    var ACCOUNT_SID = "";
    var AUTH_TOKEN = "";
    var Rest_URL = "";
    var AppID = "";
    //1. 準(zhǔn)備請(qǐng)求url
    /*
    1.使用MD5加密(賬戶(hù)Id + 賬戶(hù)授權(quán)令牌 + 時(shí)間戳)。其中賬戶(hù)Id和賬戶(hù)授權(quán)令牌根據(jù)url的驗(yàn)證級(jí)別對(duì)應(yīng)主賬戶(hù)。
    時(shí)間戳是當(dāng)前系統(tǒng)時(shí)間,格式"yyyyMMddHHmmss"。時(shí)間戳有效時(shí)間為24小時(shí),如:20140416142030
    2.SigParameter參數(shù)需要大寫(xiě),如不能寫(xiě)成sig=abcdefg而應(yīng)該寫(xiě)成sig=ABCDEFG
     */
    var sigParameter = "";
    var time = moment().format("YYYYMMDDHHmmss");
    sigParameter = md5(ACCOUNT_SID + AUTH_TOKEN + time);
    var url = Rest_URL + "/2019-6-16/Accounts/" + ACCOUNT_SID + "/SMS/TemplateSMS?sig=" + sigParameter;

    //2. 準(zhǔn)備請(qǐng)求體
    var body = {
        to: phone,
        appId: AppID,
        templateId: "1",
        "datas": [code, "1"]
    }
    //body = JSON.stringify(body);

    //3. 準(zhǔn)備請(qǐng)求頭
    /*
    1.使用Base64編碼(賬戶(hù)Id + 冒號(hào) + 時(shí)間戳)其中賬戶(hù)Id根據(jù)url的驗(yàn)證級(jí)別對(duì)應(yīng)主賬戶(hù)
    2.冒號(hào)為英文冒號(hào)
    3.時(shí)間戳是當(dāng)前系統(tǒng)時(shí)間,格式"yyyyMMddHHmmss",需與SigParameter中時(shí)間戳相同。
     */
    var authorization = ACCOUNT_SID + ":" + time;
    authorization = Base64.encode(authorization);
    var 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) {
        console.log(error, response, body);
        callback(body.statusCode === "000000");
        // callback(true);
    });
}
exports.sendCode = sendCode;

/*
sendCode("13716962779", randomCode(6), function (success) {
    console.log(success);
})*/

5.在后臺(tái)路由文件/routes/index.js中引入,使用:

const sms_util = require("../util/sms_util")

/*
發(fā)送驗(yàn)證碼短信
*/
router.get("/sendcode", function (req, res, next) {
  //1. 獲取請(qǐng)求參數(shù)數(shù)據(jù)
  var phone = req.query.phone;
  //2. 處理數(shù)據(jù)
  //生成驗(yàn)證碼(6位隨機(jī)數(shù))
  var code = sms_util.randomCode(6);
  //發(fā)送給指定的手機(jī)號(hào)
  console.log(`向${phone}發(fā)送驗(yàn)證碼短信: ${code}`);
  sms_util.sendCode(phone, code, function (success) {//success表示是否成功
    if (success) {
      users[phone] = code
      console.log("保存驗(yàn)證碼: ", phone, code)
      res.send({"code": 0})
    } else {
      //3. 返回響應(yīng)數(shù)據(jù)
      res.send({"code": 1, msg: "短信驗(yàn)證碼發(fā)送失敗"})
    }
  })
})

6.在前臺(tái)應(yīng)用中輸入綁定的測(cè)試手機(jī)號(hào),發(fā)送驗(yàn)證碼。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/104787.html

相關(guān)文章

  • 阿里平臺(tái)發(fā)送短信

    摘要:獲取阿里云訪(fǎng)問(wèn)密鑰為了使用短信發(fā)送,您必須申請(qǐng)阿里云的訪(fǎng)問(wèn)密鑰。國(guó)際港澳臺(tái)消息只能使用國(guó)際港澳臺(tái)短信模版發(fā)送短信。 1.獲取阿里云訪(fǎng)問(wèn)密鑰 為了使用短信發(fā)送API-Python SDK,您必須申請(qǐng)阿里云的訪(fǎng)問(wèn)密鑰。 阿里云訪(fǎng)問(wèn)秘鑰是阿里云為用戶(hù)使用 API(非控制臺(tái))來(lái)訪(fǎng)問(wèn)其云資源設(shè)計(jì)的安全口令。您可以用它來(lái)簽名 API 請(qǐng)求內(nèi)容以通過(guò)服務(wù)端的安全驗(yàn)證。 該訪(fǎng)問(wèn)秘鑰成對(duì)(AccessK...

    CODING 評(píng)論0 收藏0
  • 靈活靠譜高效的短信發(fā)送包 laravel-sms

    由于前段時(shí)間自己在多個(gè)項(xiàng)目里都有發(fā)送短信的需求,導(dǎo)致我需要在每個(gè)項(xiàng)目里面重復(fù)寫(xiě)短信發(fā)送,發(fā)送結(jié)果管理,以及驗(yàn)證碼校驗(yàn)等功能。 所以萌生了要為laravel量身打造一個(gè)綜合性的短信發(fā)送包。該包初步構(gòu)想的是能支持多種第三方服務(wù)商(如云片,云通訊,Luosimao等),并集成短信發(fā)送以及驗(yàn)證碼短信發(fā)送/校驗(yàn)?zāi)K。 后來(lái)在phphub上看到有人提出如果短信發(fā)送不成功或者被審核了, 調(diào)用另一個(gè)服務(wù)商的來(lái)...

    Joonas 評(píng)論0 收藏0
  • 安全開(kāi)發(fā)筆記

    摘要:登錄注冊(cè)安全風(fēng)險(xiǎn)登錄注冊(cè)的風(fēng)險(xiǎn)點(diǎn)主要有四個(gè)暴力破解撞庫(kù)遍歷注冊(cè)用戶(hù)批量注冊(cè)。引入了驗(yàn)證碼機(jī)制同樣引入了額外的安全風(fēng)險(xiǎn),比如短信驗(yàn)證碼的短信炸彈風(fēng)險(xiǎn)圖形驗(yàn)證碼的可繞過(guò)可識(shí)別等。 概述 很多技術(shù)研發(fā)不了解安全,也不重視安全,只有在自己的服務(wù)器被黑掉、被掛馬、被脫褲才想起關(guān)注安全,但是這個(gè)時(shí)候,技術(shù)架構(gòu)已經(jīng)成型、代碼已經(jīng)在線(xiàn)上穩(wěn)定運(yùn)行,再亡羊補(bǔ)牢,改代碼、改策略,往往成本巨大、確收效很低。所...

    Cruise_Chan 評(píng)論0 收藏0
  • 當(dāng)我們談?wù)?em>驗(yàn)證碼時(shí),我們到底在談?wù)撌裁矗?/b>

    摘要:在次失敗后,第四次請(qǐng)求,就返回錯(cuò)誤文案驗(yàn)證碼連續(xù)錯(cuò)誤三次,請(qǐng)重新獲取短信驗(yàn)證碼還有一個(gè)需要思考的維度。一般來(lái)說(shuō),短信驗(yàn)證碼會(huì)有分鐘的有效期。 前言: 現(xiàn)如今登錄用手機(jī)驗(yàn)證碼登錄是越來(lái)越常見(jiàn)了。雖然會(huì)增加成本,不過(guò)對(duì)用戶(hù)體驗(yàn)的提升還是很有幫助的。那么,當(dāng)產(chǎn)品經(jīng)理對(duì)開(kāi)發(fā)說(shuō),來(lái)按照這個(gè)原型給我搞個(gè)短信驗(yàn)證碼登錄的時(shí)候。我們作為研發(fā),應(yīng)該想些什么?showImg(https://upload-...

    妤鋒シ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<