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())}>