Node.js第三方中间件实现验证码
svg-captcha验证码
使用:
(1)下载
npm i svg-captcha --save
(2)引入
不用app.use
const svgCaptcha=require("svg-captcha")
(3)创建一个ico
let svgico =svgCaptcha.create()
// res.type("svg") 设置渲染的数据的类型
/*
可以传一个对象作为参数
let svgico= svgCaptcha.create({
size:6,//验证码个数
ignoreChars:"0o1Il",//忽略的字符
noise:10,//几根线
color:false,//字体是否有颜色
background:"red",//背景色
})
*/
(4)代码实例
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
</head>
<body>
<form action="" method="get">
验证码:<img src="http://localhost:3000/login" alt="12" width="300" height="100">
</form>
</body>
</html>
verification.js
const express = require('express');
const svgCaptcha = require('svg-captcha');
let app = express();
app.get("/login", (req, res) => {
let svgico = svgCaptcha.create({
size: 6,
ignoreChars: "0o1I1",
noise: 5,
color: true,
background: "#eee"
})
// console.log(svgico);
/*{
text 给后端去验证
data 给前端显示
}
create可以接收一个对象作为参数
{
size:6,//验证码个数
ignoreChars:"0o1Il",//忽略的字符,不会出现在验证码里
noise:10,//几根线
color:false,//字体是否有颜色
background:"red",//背景色
}
*/
res.type("svg"); // 单独设置文件类型
res.send(svgico.data)
})
app.listen(3000, () => {
console.log("Port 3000 is listening...");
})