基于JavaScript短信驗(yàn)證碼如何實(shí)現(xiàn)
我們在使用移動、電信等運(yùn)營商網(wǎng)上營業(yè)廳的時候,為確保業(yè)務(wù)的完整和正確性,經(jīng)常會需要用到短信的驗(yàn)證碼。最近因?yàn)槟呈I(yè)務(wù)需要,也做了個類似的功能。
原理很簡單,就是在用戶點(diǎn)擊"獲取驗(yàn)證碼"的時候,Ajax獲取一串固定位數(shù)的數(shù)字,然后寫數(shù)據(jù)庫發(fā)短信,寫Cookie設(shè)置驗(yàn)證碼的有效期。
JS請求驗(yàn)證碼如下:
$.ajax({ type: "GET", url: "../Ajax/smsrandcodetest.ashx?phone=" + phone.val() + "&smsCodeRand=" + num, success: function(result) { if (result == "Y") { alert("驗(yàn)證碼已發(fā)送至您輸入的手機(jī)號!有效期5分鐘"); RemainTime(); } else { alert("驗(yàn)證碼獲取失??!請重新獲取"); } }, error: function() { alert("error"); } }); //獲取6位隨機(jī)驗(yàn)證碼 function random() { var num = ""; for (i = 0; i < 6; i++) { num = num + Math.floor(Math.random() * 10); } return num; } //驗(yàn)證碼有效期倒計(jì)時 function RemainTime() { var iSecond; var sSecond = "", sTime = ""; if (iTime >= 0) { iSecond = parseInt(iTime % 300); if (iSecond >= 0) { sSecond = iTime + "秒"; } sTime = "<span style='color:darkorange;font-size:13px;'>" + sSecond + "</span>"; if (iTime == 0) { clearTimeout(Account); sTime = "<span style='color:red;font-size:12px;'>驗(yàn)證碼已過期</span>"; } else { Account = setTimeout("RemainTime()", 1000); } iTime = iTime - 1; } $("#endtime").html(sTime); }
前端要處理的工作基本如上,現(xiàn)在要在HttpHandler中添加邏輯了,為了防止Js生成的驗(yàn)證碼不符規(guī)則,我們在后端重新生成一次:
if (smscoderand.Length != 6) //如果JS生成的隨機(jī)碼不符,則用C#生成隨機(jī)碼 { smscoderand = GetRandom(); } //寫短信數(shù)據(jù),發(fā)SMS //寫Cookie,設(shè)置驗(yàn)證碼有效期,比如5分鐘 //注:如果以上都處理成功,返回"Y",處理失敗,返回"N"
這里為了方便,驗(yàn)證碼的有效期驗(yàn)證就用Cookie來完成。在業(yè)務(wù)提交的時候,會獲取客戶端的這個Cookie,看是否存在,如果不存在肯定就是過期了。如果后續(xù)業(yè)務(wù)擴(kuò)展可能會考慮加上數(shù)據(jù)庫的有效期驗(yàn)證,以及一些其它的規(guī)則,比如一小時、一天內(nèi)限制發(fā)送驗(yàn)證碼的條數(shù)(總不能讓你無限制的發(fā)送短信吧) 等等。
以上所述是針對JavaScript短信驗(yàn)證碼如何實(shí)現(xiàn)的詳細(xì)介紹,希望對大家有所幫助。
- javascript實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼案例
- 手動實(shí)現(xiàn)js短信驗(yàn)證碼輸入框
- 用Javascript實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼間隔功能
- JS實(shí)現(xiàn)簡單短信驗(yàn)證碼界面
- JavaScript獲取短信驗(yàn)證碼(周期性)
- JS實(shí)現(xiàn)用戶注冊時獲取短信驗(yàn)證碼和倒計(jì)時功能
- JS短信驗(yàn)證碼倒計(jì)時功能的實(shí)現(xiàn)(沒有驗(yàn)證碼,只有倒計(jì)時)
- javascript發(fā)送短信驗(yàn)證碼實(shí)現(xiàn)代碼
- JavaScript實(shí)現(xiàn)移動端短信驗(yàn)證碼流程介紹
相關(guān)文章
微信小程序事件點(diǎn)擊跳轉(zhuǎn)頁面的五種方法小結(jié)
本文主要介紹了微信小程序事件點(diǎn)擊跳轉(zhuǎn)頁面的五種方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07微信小程序navigator跳轉(zhuǎn)及參數(shù)傳遞的方法
這篇文章主要介紹了微信小程序navigator跳轉(zhuǎn)及參數(shù)傳遞,在navigator中添加需要跳轉(zhuǎn)的路徑,如果需要帶參,則在路徑后面添加所要傳遞的參數(shù)以及值,需要的朋友可以參考下2023-11-11JavaScript異步調(diào)用定時方法并停止該方法實(shí)現(xiàn)代碼
JavaScript異步調(diào)用定時方法并停止該方法實(shí)現(xiàn)代碼 ,需要的朋友可以參考下2012-03-03Javascript浮點(diǎn)數(shù)乘積運(yùn)算出現(xiàn)多位小數(shù)的解決方法
這篇文章主要介紹了Javascript浮點(diǎn)數(shù)乘積運(yùn)算出現(xiàn)多位小數(shù)的解決方法,需要的朋友可以參考下2014-02-02