express实现svg图片验证码

图片效果:

下载 svg-captcha

npm install --save svg-captcha

代码如下

const express=require("express");
const app=express();
app.listen(3000,()=>{
    console.log("app start!")
})
var svgCaptcha = require('svg-captcha');
const router=express.Router();
const cookie=require("cookie-parser")
 const session=require("express-session")
 app.use(cookie('session'))
 app.use(session({
     saveUninitialized:false,
     secret:"ergwe", 
     resave:false,
     rolling:true,                          //是否在用户每次请求时重置cookie(connect.sid)的生存时间
     cookie:{maxAge:30*60*1000} 
 }))
router.get('/captcha', function (req, res) {
    var cap = svgCaptcha.create({
            size:4,
            ignoreChars:"0o1i",
            noise:2,
            background:"#f5f5f5",
            color:true,
            height:44
        });
    req.session.captcha= cap.text.toLocaleLowerCase();
    // console.log(req.session.captcha)
    res.type('svg');//响应类型
    res.status(200).send(cap.data);
});
app.use("/",router)

解释: size:是图片字符个数

    ignoreChars:是过滤掉一些字符,例如0o1i

    noise:干扰线个数

    background:是图片背景颜色

    color:字符颜色,如果background设置颜色,color为true

    height:图片高度

页面使用方法

<img src="/captcha" onclick={$(event.target).attr('src','/captcha?'+Math.random())}>
posted @ 2020-05-14 10:31  山吹同学  阅读(563)  评论(0编辑  收藏  举报