Lorsque nous utilisons les salles d'affaires en ligne des opérateurs de téléphonie mobile, de télécommunications et autres, afin de garantir l'intégrité et l'exactitude de l'entreprise, nous devons souvent utiliser des codes de vérification par SMS. Récemment, une fonction similaire a été créée en raison des besoins commerciaux d'une certaine province.
Le principe est très simple, c'est-à-dire que lorsque l'utilisateur clique sur "Obtenir le code de vérification", Ajax obtient une chaîne de chiffres fixes, puis écrit dans la base de données pour envoyer un message texte et écrit un cookie pour définir la période de validité de le code de vérification.
Le code de vérification de la demande JS est le suivant :
$.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); }
Le travail à traiter par le front-end est fondamentalement le même que ci-dessus. Nous devons maintenant ajouter une logique dans le HttpHandler Afin d'éviter que le code de vérification généré par Js ne soit pas conforme aux règles, nous le régénérons dans. le back-end :
if (smscoderand.Length != 6) //如果JS生成的随机码不符,则用C#生成随机码 { smscoderand = GetRandom(); } //写短信数据,发SMS //写Cookie,设置验证码有效期,比如5分钟 //注:如果以上都处理成功,返回"Y",处理失败,返回"N"
Pour plus de commodité, la vérification de la période de validité du code de vérification est effectuée à l'aide d'un cookie. Lors de la soumission de l'entreprise, le cookie du client sera obtenu pour voir s'il existe. S'il n'existe pas, il doit avoir expiré. Si l'entreprise se développe plus tard, vous pouvez envisager d'ajouter une vérification de la validité de la base de données et d'autres règles, telles que limiter le nombre de codes de vérification envoyés en une heure ou une journée (vous ne pouvez pas être autorisé à envoyer des messages texte illimités), etc.
Ce qui précède est une introduction détaillée sur la façon de mettre en œuvre le code de vérification SMS JavaScript. J'espère que cela sera utile à tout le monde.