短信验证码js实现

时间:2023-01-06 12:07:39
短信验证码实现
     我们在使用移动、电信等运营商网上营业厅的时候,为确保业务的完整和正确性,经常会需要用到短信的验证码。最近因为某省业务需要,也做了个类似的功能。
    原理很简单,就是在用户点击"获取验证码"的时候,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 = "";
    ; i < ; i++) {
        num = num + Math.floor(Math.random() * );
    }
    return num;
}
//验证码有效期倒计时
function RemainTime() {
    var iSecond;
    var sSecond = "", sTime = "";
    ) {
        iSecond = parseInt(iTime % );
        ) {
            sSecond = iTime + "秒";
        }
        sTime = "<span style='color:darkorange;font-size:13px;'>" + sSecond + "</span>";
        ) {
            clearTimeout(Account);
            sTime = "<span style='color:red;font-size:12px;'>验证码已过期</span>";
        }
        else {
            Account = setTimeout();
        }
        iTime = iTime - ;
    }
    $("#endtime").html(sTime);
} 

      前端要处理的工作基本如上,现在要在HttpHandler中添加逻辑了,为了防止Js生成的验证码不符规则,我们在后端重新生成一次:
) //如果JS生成的随机码不符,则用C#生成随机码
{
   smscoderand = GetRandom();
}
//写短信数据,发SMS
//写Cookie,设置验证码有效期,比如5分钟
//注:如果以上都处理成功,返回"Y",处理失败,返回"N"
      这里为了方便,验证码的有效期验证就用Cookie来完成。在业务提交的时候,会获取客户端的这个Cookie,看是否存在,如果不存在肯定就是过期了。如果后续业务扩展可能会考虑加上数据库的有效期验证,以及一些其它的规则,比如一小时、一天内限制发送验证码的条数(总不能让你无限制的发送短信吧) 等等。

短信验证码js实现的更多相关文章

  1. 短信验证码js

    var isSmsSend = false; function clickButtona(obj){ var obj = $(obj); var mobile=$("input[name=m ...

  2. Yii2发送短信验证码完全解决方案

    概述 在做项目的时候,需要用到短信发送验证码功能.不能不说Yii2的牛逼,很容易就搞定了.下面我整理一下具体功能和流程,分享给大家. 主要功能 通过Yii2 rules验证手机号 通过js验证是否为手 ...

  3. js短信验证码

    短信验证码,无注释,url顺便写的错的,所以会报错 <!DOCTYPE html> <html> <head> <meta charset="UTF ...

  4. js模拟支付宝发送短信验证码&amp&semi;&amp&semi;&amp&semi;&amp&semi;短信倒计时

    html <div class="pwdContent"> <div class="pwdBox"></div> <d ...

  5. js 发送短信验证码倒计时

    html <input type="button" id="btn" value="免费获取验证码" onclick="se ...

  6. JS异步操作之promise发送短信验证码&period;html

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta cont ...

  7. 一百一十八:CMS系统之短信验证码加密和js代码混淆

    前面的方法存在安全隐患,只要知道发送短信验证码的接口就可以无限触发发送短信验证码 改用post请求,在前端加scrf_token验证,后面需要使用到md5加密,引入md5 from apps.form ...

  8. JS发送短信验证码

    <div> <input type="tel" id="mobile" name="mobile" placeholder ...

  9. springboot &plus;spring security4 自定义手机号码&plus;短信验证码登录

    spring security 默认登录方式都是用户名+密码登录,项目中使用手机+ 短信验证码登录, 没办法,只能实现修改: 需要修改的地方: 1 .自定义 AuthenticationProvide ...

随机推荐

  1. iOS:集成ijkplayer视频直播

    介绍: ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集 ...

  2. &lbrack;Hibernate&rsqb; - Annotations - Many To Many

    Hibernate annotation 多对多: 下面测试例子会自动生成一张表:card,这张是bank和user表的映射表.里头是bank_id和user_id两个组合字段. 如果想在这张映射表中 ...

  3. 记录创建企业Wiki的几个开源项目

    很多著名的企业Wiki都是开源产品,如Foswiki(基于Perl),TWiki(基于Perl)等,另外有Mindtouch(基于PHP, C#),Confluence(基于Java)等.维基道的Wi ...

  4. HDU 4006 The kth great number AVL解

    提供动态更新数据.第实时QK大量的值什么? 使用AVL统计数据结构做,比较先进的数据结构的内容. 不知道给出的数据为准值是否有反复.下面的程序是因为我能够处理重复数据出现的情况下,. 了repeat的 ...

  5. Go 单例模式&lbrack;个人翻译&rsqb;

    原文地址:http://marcio.io/2015/07/singleton-pattern-in-go/ 最近几年go语言的增长速度非常惊人,吸引着各界人士切换到Go语言.最近有很多关于使用Rub ...

  6. SpringMVC实现返回不同视图

    在spring mvc中应该怎么实现可以返回不同结果呢,其实就是配置多个视图解析器,最常用的就是freemaker视图解析器,有时候要又要同时又jsp,html,那么应该怎么配置呢? 具体配置如下 & ...

  7. background问题

    1.如果是小图的背景图 background: url("@{images-dir}/homepage/our_pro_2x.png") no-repeat 0 0; backgr ...

  8. &lpar;8&rpar;Python判断结构

  9. docker rmi 导致后面的命令不执行问题 Dockerfile设置时区问题

    docker rmi 导致后面的命令不执行问题 把ca=`docker rmi sendemail-service` echo $ca改成docker rmi sendemail-service -f ...

  10. Android&period;PackageManager

    1. Apk的安装和更新过程是怎样的呢? Ref[1] 2. 在安装.apk程序包时, .so是如何选择并安装的? 这里的选择是指,是如何根据CPU_ABI和CPU_ABI2的值来选择合适的.so的. ...