验证码----svg-captcha

验证码----svg-captcha

首先找或者新建一个空文件夹,下面是我新建的空文件夹
在这里插入图片描述

然后npm验证码svg-captcha模块

npm i --save svg-captcha

相信各位都知道一个node项目还要继续引入什么模块吧,可能有刚刚接触nodejs的小伙伴,我还是将需要引入什么模块展示到下面吧

npm i express
npm i body-parser

然后再yanzhengma目录下新建一个public文件夹,用来存放静态资源,然后在public文件夹下新建一个captcha.html文件,下面是我的目录结构
在这里插入图片描述
这里就不多说了,直接上代码

app.js
// 加载express模块
const express = require("express")
// 加载bodyParser模块
const bodyParser = require("body-parser")
// API网址:https://github.com/produck/svg-captcha/blob/1.x/README_CN.md
// 加载图片验证码模块
const svgCaptcha = require("svg-captcha")
// 创建服务器对象
const server = express()
server.use(
  bodyParser.urlencoded({
    extended: false,
  })
)
//静态资源管理
server.use(express.static("public"))

// 图片验证码接口
server.get("/captcha", (req, res) => {
  // 设置字母随机验证码相关属性
  let options = {
    size: 4, // 4个字母
    noise: 2, // 干扰线2条
    color: true, // 文字颜色
    background: "#666", // 背景颜色
    // 数字的时候,设置下面属性。最大,最小,加或者减
    // mathMin: 1,
    // mathMax: 30,
    // mathOperator: "+",
  }
  //这里可以分为字母和数字随机验证码和数字算数随机验证码,
  //我就先展示字母和数字随机验证码了,
  //如果想尝试数字算数随机验证码可以将下一行取消注释,将数字算数验证码解开注释即可
  let captcha = svgCaptcha.create(options) //字母和数字随机验证码
  // let captcha = svgCaptcha.createMathExpr(options) //数字算数随机验证码

  let { text, data } = captcha
  // console.log(text,data);
  // text是指产生的验证码,data指svg的字节流信息
  res.type("svg")
  res.send({ img: captcha.data, str: captcha.text })
})

// 指定服务器对象监听的端口
server.listen(3000, () => {
  console.log("服务器启动成功...")
})

public/captcha.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>图片验证码</title>
  </head>
  <body>
    <div>
      <div onclick="refresh()" id="aaa">验证码占位区</div>
    </div>
    <div>点击刷新</div>
    <!-- 引入axiosjs文件,用来发起请求,
    	 我这里是直接引入的在线的axios文件,
    	 当然大家可以去网上下载axios文件,直接放到public文件夹里面再引入
     -->
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <!-- <script src="./axios.js"></script> -->
    <script>
      // 刷新方法
      function refresh() {
        // 发送请求
        this.axios.get("/captcha").then((res) => {
          console.log(res)
          let svg = res.data.img
          let str = res.data.str
          svg = `<div>${svg}</div>`
          aaa.innerHTML = svg
        })
      }
      refresh()
    </script>
  </body>
</html>

然后运行app.js

node app.js

在这里插入图片描述
接着浏览器访问后网页效果如下图
在这里插入图片描述
开发者模式控制台打印出来的数据如图
在这里插入图片描述
下面是数字算数随机验证码的效果和开发者模式控制台打印的数据图
在这里插入图片描述
这里我们可以看到,我这里出来的是"2+5",然后其计算结果为7,开发者模式控制台打印的数据下的"data.str"为"7"

感谢您能够认真看完我的文章

  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
你可以使用 "svg-captcha" 模块来在 Node.js 中生成 SVG 验证码。这个模块可以帮助你生成随机的验证码,并将其以 SVG 格式返回,以便在网页中显示。你可以按照以下步骤使用它: 1. 首先,确保你已经在你的项目目录中安装了 Node.js。你可以通过运行 `node -v` 命令来检查是否已经安装了 Node.js。 2. 打开终端,并在项目目录中运行以下命令来安装 "svg-captcha" 模块: ``` npm install svg-captcha ``` 3. 在你的代码中,引入 "svg-captcha" 模块: ```javascript const svgCaptcha = require('svg-captcha'); ``` 4. 使用 `svgCaptcha.create()` 方法来生成验证码: ```javascript const captcha = svgCaptcha.create(); ``` 5. 你可以通过访问 `captcha.text` 属性来获取生成的验证码的文本,通过访问 `captcha.data` 属性来获取生成的验证码SVG 数据。 6. 最后,你可以将生成的 SVG 数据返回给前端,以便在网页中显示验证码。 这是一个简单的示例代码,演示了如何使用 "svg-captcha" 模块生成验证码: ```javascript const svgCaptcha = require('svg-captcha'); // 生成验证码 const captcha = svgCaptcha.create(); // 打印验证码文本 console.log(captcha.text); // 返回验证码 SVG 数据给前端 res.type('svg').send(captcha.data); ``` 记得替换 `res.type('svg').send(captcha.data)` 中的 `res` 对象为你使用的服务器框架中相应返回 SVG 数据的方法。 希望这能帮到你!如有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你真的快乐吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值