Node+express中添加验证码

验证码在平时访问网站中非常常见,其作用是能够有效的避免机器操作,恶意攻击。

1.使用的包
svg-captcha
  在node.js或express.js中生成svg captcha验证码
cookie-parser
  存储验证码的值

//安装
npm i svg-captcha cookie-parser express-session

2.index.js代码

// 验证码
let svgCaptcha=require('svg-captcha');
// cookie
let cookoeParser=require('cookie-parser');
// 启用cookie
app.use(cookoeParser());
// 启用session
let session=require('express-session')
app.use(session());
// 创建一个验证码的路由
app.get('/verifyCode',(req,res)=>{
    // 创建验证码
    var captcha = svgCaptcha.create({
        color: true, // 验证码的字符是否有颜色,默认没有,如果设定了背景,则默认有
        inverse:false,// 反转颜色
        background: '#eee' // 验证码图片背景颜色
        width:100, //  宽度
        height:40, // 高度
        fontSize:48, // 字体大小
        size:4, // 验证码的长度
        noise:3, // 干扰线条的数量
        ignoreChars: '0oO1ilI' // 验证码字符中排除 0o1i 这些较难识别的
    });
    // session里面也放一份,并且文本不区分大小写
    req.session=captcha.text.toLowerCase();
    // cookie放一份
    res.cookie('captcha',req.session);
    res.send(captcha.data);
    // 往session,cookie中都存入一个验证码,并且把验证码显示在页面上
})

3.index.html页面调用验证码

调用的时候使用ajax的方式调用,每次点击图片也重新调用验证码

 <form  action="" method="">
        <input type="text"  name="name" required autocomplete="on" autofocus>
        <input type="password" name="password" >
        <input type="text"  name="verCode" placeholder="请输入验证码"   required >
        <div id="verify"></div>
 </form>
<script>
function getVerify(){
    $.ajax({
        url:'/verifyCode?t='+Math.random(),
        type:'get',
        success:function(data){
            $('#verify').html(data);
        }
    })
}
getVerify()
$('#verify').on('click',function(){
    getVerify()
})
</script>

生产的验证码如下:
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sea9528

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值