node.js创建验证码,并验证
需要用到的插件express-session、svg-captcha
npm install express-session --save
//express缓存,注意从1.5.0版开始, 不再需要使用cookie-parser中间件来使该模块正常工作。
npm install svg-captcha --save
//在node.js中生成svg验证码
app.js中引入并配置express-session
const session = require('express-session')
const svgCaptcha = require('svg-captcha');
app.use(session({
secret: 'test',
name: 'name',
cookie: {
maxAge: 60000
},
resave: false,
saveUninitialized: true,
}));
定义get路由/captcha 创建验证码对象,并将验证码文本存进session,验证码数据返回客户端
// 获取验证码
router.get('/captcha', function (req, res) {
var captcha = svgCaptcha.create();//创建svg验证码
req.session.captcha = captcha.text;//将验证码文本存进session
res.type('svg').send(captcha.data);
});
再定义get路由/test,用来测试获取存进session中的验证码文本
router.get('/test', function (req, res) {
res.send(req.session)
})
运行express服务器,在前端用img标签即可请求到验证码svg数据,并显示
<img src="http://localhost:3000/captcha" alt="captcha" />
请求test路由地址,可以获取文本验证码,并匹配用户输入的验证码是否正确