国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

基于JavaScript短信驗證碼如何實現

2019-11-20 10:42:58
字體:
來源:轉載
供稿:網友

我們在使用移動、電信等運營商網上營業廳的時候,為確保業務的完整和正確性,經常會需要用到短信的驗證碼。最近因為某省業務需要,也做了個類似的功能。

原理很簡單,就是在用戶點擊"獲取驗證碼"的時候,Ajax獲取一串固定位數的數字,然后寫數據庫發短信,寫Cookie設置驗證碼的有效期。

JS請求驗證碼如下:

$.ajax({type: "GET",url: "../Ajax/smsrandcodetest.ashx?phone=" + phone.val() + "&smsCodeRand=" + num,success: function(result) {if (result == "Y") {alert("驗證碼已發送至您輸入的手機號!有效期5分鐘");RemainTime();}else {alert("驗證碼獲取失敗!請重新獲取");}},error: function() { alert("error"); }});//獲取6位隨機驗證碼function random() {var num = "";for (i = 0; i < 6; i++) {num = num + Math.floor(Math.random() * 10);}return num;}//驗證碼有效期倒計時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;'>驗證碼已過期</span>";}else {Account = setTimeout("RemainTime()", 1000);}iTime = iTime - 1;}$("#endtime").html(sTime);} 

前端要處理的工作基本如上,現在要在HttpHandler中添加邏輯了,為了防止Js生成的驗證碼不符規則,我們在后端重新生成一次:

if (smscoderand.Length != 6) //如果JS生成的隨機碼不符,則用C#生成隨機碼{smscoderand = GetRandom();}//寫短信數據,發SMS//寫Cookie,設置驗證碼有效期,比如5分鐘//注:如果以上都處理成功,返回"Y",處理失敗,返回"N"

這里為了方便,驗證碼的有效期驗證就用Cookie來完成。在業務提交的時候,會獲取客戶端的這個Cookie,看是否存在,如果不存在肯定就是過期了。如果后續業務擴展可能會考慮加上數據庫的有效期驗證,以及一些其它的規則,比如一小時、一天內限制發送驗證碼的條數(總不能讓你無限制的發送短信吧) 等等。

以上所述是針對JavaScript短信驗證碼如何實現的詳細介紹,希望對大家有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临洮县| 县级市| 宾阳县| 嘉祥县| 洱源县| 沂水县| 土默特左旗| 陆河县| 乐业县| 互助| 梧州市| 昆山市| 华安县| 灵宝市| 子长县| 定州市| 华池县| 伊宁市| 玛沁县| 诏安县| 满洲里市| 山丹县| 拜泉县| 乌兰县| 彰武县| 隆回县| 金秀| 河东区| 新巴尔虎右旗| 同仁县| 简阳市| 乐山市| 阿拉善盟| 临泽县| 蓬溪县| 咸宁市| 花垣县| 胶州市| 南通市| 旺苍县| 图木舒克市|