Skip to content

可以使用 svg-captcha 这个 npm 包来生成验证码。

安装

shell
npm install --save svg-captcha
npm install --save svg-captcha

生成验证码

ts
const svgCaptcha = require("svg-captcha");
const { createServer } = require("node:http");

createServer((req, res) => {
  const captcha = svgCaptcha.create();
  res.setHeader("content-type", "text/html");
  console.log("[captcha]:" + captcha.text); // text 为验证码的实际内容
  res.end(captcha.data); // data为验证码的渲染内容,是一个svg标签
}).listen(3000);
const svgCaptcha = require("svg-captcha");
const { createServer } = require("node:http");

createServer((req, res) => {
  const captcha = svgCaptcha.create();
  res.setHeader("content-type", "text/html");
  console.log("[captcha]:" + captcha.text); // text 为验证码的实际内容
  res.end(captcha.data); // data为验证码的渲染内容,是一个svg标签
}).listen(3000);

生成的图片预览:

image

生成算数验证码

ts
const svgCaptcha = require("svg-captcha");
const { createServer } = require("node:http");

createServer((req, res) => {
  // 只支持加法和减法
  const captcha = svgCaptcha.createMathExpr({
    mathMax: 49,
    mathMin: 2,
  });
  res.setHeader("content-type", "text/html");
  console.log("[captcha]:" + captcha.text);
  res.end(captcha.data);
}).listen(3000);
const svgCaptcha = require("svg-captcha");
const { createServer } = require("node:http");

createServer((req, res) => {
  // 只支持加法和减法
  const captcha = svgCaptcha.createMathExpr({
    mathMax: 49,
    mathMin: 2,
  });
  res.setHeader("content-type", "text/html");
  console.log("[captcha]:" + captcha.text);
  res.end(captcha.data);
}).listen(3000);

生成的图片预览:

image2

更多用法:https://www.npmjs.com/package/svg-captcha