SVG-captcha验证码在node中的应用

良心推荐吧!觉得比ccap的图片验证码便捷许多,不用什么python,c++的环境。切身感受,用ccap搞环境搞了将近一天都没弄好,报错层出不穷。心累得。。。

下面呢?说一下很快搞好的这个可耐验证码吧

1.创建captcha.js,生成验证码

var captcha={};
var cache={};
 captcha.captcha=async function(ctx,next){
	const svgCaptcha = require('svg-captcha');//验证码
	var capt = svgCaptcha.create({
		color:true,
		noise:3,
		ignoreChars:'0oli',
		size:4
	});
	ctx.body=capt.data;
	var num=capt.text;
	captcha.setCache(ctx.cookies.get('userId'),num)
 }
 //保存验证码,是在访问页面时设置,若第三方不访问前端页面
 //如果验证码是空的,id也是空的还是会认为是正确的
captcha.setCache=function(uid,data){
	cache[uid]=data;
	console.log(uid,data)
}
//验证
captcha.validCache=function(uid,data){
	return cache[uid]===data;
}
module.exports =captcha;

2.在koa框架中使用验证码,向前端提供接口:router.js

const Router = require('koa-router');
const router = new Router({
	prefix: ''
});
const captcha=require('../tools/captcha')

router.get('/captcha',captcha.captcha);
module.exports = router;

3.在前端表单中使用:

iframe(src="/captcha",width="180",height="70")

4.后端逻辑获取表单数据,得到验证码,调用captcha.validCache验证是否正确

if(!data.captcha){
			throw new Error('验证码为空,错误')
		}
		//验证是否报错
		var captcha=require('../tools/captcha');
		var resultCaptcha=captcha.validCache(ctx.cookies.get('userId'),data.captcha);
		console.log('result',resultCaptcha)
		if(!resultCaptcha){
			throw new Error('验证码错误')
		}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值