node与验证码

最近用node做了一个简易后台系统,遇到了很多坑,拿出来分享分享。

先上图,我们还是按套路出牌。

因为long long ago也用php写过后台,php可以自己绘制验证码。所以马上百度一波。
然而发现node貌似没有类似的骚操作。

所以选择了网上大多数人用的插件svg-captcha

来来来,上代码:
api.js:

var svgCaptcha = require('svg-captcha');//引入插件(验证码) ps:可以放在公用的app.js中,我是单独放在api.js中

router.post('/captcha',function(req,res,next){
    var code = svgCaptcha.create({  
        // 翻转颜色  
        inverse: false,  
        ignoreChars: '0o1i',
         // 验证码字符中排除 0o1i
        // 字体大小  
        fontSize: 36,  
        // 噪声线条数  
        noise: 2,  
        // 宽度 
        width: 120,  
        // 高度  
        height: 29,  
        color: 'red',
    }); 
    req.session.captcha = code.text.toLowerCase();  // 特别注意:这里需要你先自己定义session,否则会报错
    res.send(code.data);
});

下面代码是前端实现渲染:
login.ejs:

$.ajax({ 
	url: "/api/captcha",
	type: 'post',
	success: function(data) { 
		$(".yzm_pic").html(data); //关键代码
	},
	error: function(err) {
		console.log(err);
	}
})

到这里,恭喜!你就大功告成。

posted @ 2018-06-08 11:50  Lafitewu  阅读(169)  评论(0编辑  收藏  举报