JavaScript_javascript スキルに基づいて SMS 確認コードを実装する方法

WBOY
リリース: 2016-05-16 15:18:33
オリジナル
2341 人が閲覧しました

携帯電話、電気通信、その他の通信事業者のオンライン ビジネス ホールを使用する場合、ビジネスの完全性と正確性を確保するために、多くの場合、SMS 認証コードを使用する必要があります。最近、ある州のビジネスニーズにより同様の機能が構築されました。

原理は非常に単純です。つまり、ユーザーが「認証コードの取得」をクリックすると、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);
} 
ログイン後にコピー

フロントエンドで処理する作業は基本的に上記と同じです。Js で生成された検証コードがルールに準拠しないようにするために、HttpHandler にロジックを追加する必要があります。バックエンド:

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

ここでは便宜上、認証コードの有効期限検証はCookieを使用して完了します。ビジネスが送信されると、クライアントの Cookie が取得され、存在するかどうかが確認されます。存在しない場合は、有効期限が切れている可能性があります。ビジネスが後で拡大する場合は、データベースの有効性検証や、1 時間または 1 日に送信される確認コードの数を制限する (無制限のテキスト メッセージを送信することはできません) などのその他のルールを追加することを検討できます。

上記は JavaScript SMS 認証コードの実装方法について詳しく説明したもので、皆様のお役に立てれば幸いです。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート