一、需求
使用 nodejs 做后端开发,需要请求验证码,在 github 上看到了 svg-captcha
这个库,发现他是将 text 转 svg 进行返回的,安全性也有保证,不会被识别成文字。
二、基本使用
安装:
yarn add svg-captcha
1) 创建普通验证码:
const svgCaptcha = require('svg-captcha'); const cap = svgCaptcha.create(); console.log(cap); // {data: '<svg.../svg>', text: 'abcd'}
调用 create()
之后,会返回一个对象,结构如下:{data:'',text:''}
。
data
:验证码 svg 图片text
: 验证码字符
create()的参数如下:
size
: 4 // 验证码长度ignoreChars
: '0o1i' // 验证码字符中排除 0o1inoise
: 1 // 干扰线条的数量color
: true // 验证码的字符是否有颜色,默认没有,如果设定了背景,则默认有background
: '#cc9966' // 验证码图片背景颜色
示例:
2) 创建算数式验证码
const cap = svgCaptcha.createMathExpr(options)
示例:
三、在 express 中使用
在网页中使用验证码的时候,无非是请求一个 URL ,返回一个验证码图片。
1) express 中构建一个 /captcha
的路由:
const express = require('express'); const captcha = require('svg-captcha'); const router = express.Router(); router.get('/',(req,res)=>{ const cap = captcha.createMathExpr(); req.session.captcha = cap.text; // session 存储 res.type('svg'); // 响应的类型 res.send(cap.data); });
2) 前端使用
<img src="/captcha" onclick={$(event.target).attr('src','/captcha?'+Math.random())}>
来源:http://zhouyi.run
本文来自博客园,作者:书中枫叶,转载请注明原文链接:https://www.cnblogs.com/zy-mg/p/15981301.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战