验证码图片显示

有一个npm的轮子svg-captcha,用于生成svg格式的验证码图片,非常好用,用过的都知道,没用过你值得尝试下。
我们知道svg的图片可以在html里直接显示。这样,后端随机生成一串字符串,和对应的svg代码,把svg代码发送给前端,前端拿到后,把该svg替换到页面中div元素的innerHTML,即可在该div的位置显示svg图片。用户输入识别出来的验证码字符串,提交到后端,后端根据生成时记录的验证码字符串核验用户提交的验证码字符串。。。
下面我们主要把后端验证码生成和前端验证码显示的代码示例下:

//后端nodejs+express
const svgCaptcha = require('svg-captcha')

const express = require('express');
const app = express();

app.use('/', express.static('.')); //目录下有html和其他js文件比如axios.min.js
app.get('/getsvg',  (req, res) => {
	let captcha = svgCaptcha.create({
		size: 5, 
		ignoreChars: '0o1i', // 验证码字符中排除 0o1i,这几个看起来容易混淆
		fontSize: 32, 
		noise: 2, 
		width: 180, 
		height: 36, 
		color: true, 
		background: '#ccc' 
		})
	console.log( captcha.text);//验证码字符串
	res.type('svg');
	res.send(captcha.data);//返回前端的svg代码
})

var server=app.listen(9210,function(){
	console.log("app启动");
})


<!--testcaptcha.html-->
<script src="axios.min.js"></script>
<div onclick="getvc()" id="vcp"></div>
<script>
function getvc() {axios.get("/getsvg").then((res) => vcp.innerHTML=res.data )} //点击图片更新验证码
getvc()   //页面加载即显示验证码
</script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值