Rumah  >  Artikel  >  hujung hadapan web  >  Cara melaksanakan kod pengesahan SMS berdasarkan kemahiran JavaScript_javascript

Cara melaksanakan kod pengesahan SMS berdasarkan kemahiran JavaScript_javascript

WBOY
WBOYasal
2016-05-16 15:18:332317semak imbas

Apabila kami menggunakan dewan perniagaan dalam talian bagi pengendali mudah alih, telekom dan lain-lain, untuk memastikan integriti dan ketepatan perniagaan, kami selalunya perlu menggunakan kod pengesahan SMS. Baru-baru ini, fungsi serupa telah dibina kerana keperluan perniagaan di wilayah tertentu.

Prinsipnya sangat mudah, iaitu, apabila pengguna mengklik "Dapatkan Kod Pengesahan", Ajax memperoleh rentetan digit tetap, kemudian menulis pangkalan data untuk menghantar mesej teks, dan menulis kuki untuk menetapkan tempoh sah kod pengesahan.

Kod pengesahan permintaan JS adalah seperti berikut:

$.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);
} 

Kerja yang akan diproses oleh bahagian hadapan pada asasnya adalah sama seperti di atas Sekarang kita perlu menambah logik dalam HttpHandler Untuk mengelakkan kod pengesahan yang dijana oleh Js daripada tidak mematuhi peraturan, kami menjananya semula bahagian belakang:

if (smscoderand.Length != 6) //如果JS生成的随机码不符,则用C#生成随机码
{
smscoderand = GetRandom();
}
//写短信数据,发SMS
//写Cookie,设置验证码有效期,比如5分钟
//注:如果以上都处理成功,返回"Y",处理失败,返回"N"

Untuk kemudahan di sini, pengesahan tempoh sah kod pengesahan diselesaikan menggunakan Kuki. Apabila perniagaan diserahkan, kuki pelanggan akan diperoleh untuk melihat sama ada ia wujud Jika ia tidak wujud, ia mesti telah tamat tempoh. Jika perniagaan berkembang kemudian, anda boleh mempertimbangkan untuk menambah pengesahan kesahihan pangkalan data dan beberapa peraturan lain, seperti mengehadkan bilangan kod pengesahan yang dihantar dalam satu jam atau satu hari (anda tidak boleh dibenarkan menghantar mesej teks tanpa had), dsb.

Di atas ialah pengenalan terperinci tentang cara melaksanakan kod pengesahan SMS JavaScript saya harap ia akan membantu semua orang.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn