node框架express中生成验证码svg-captcha
前提说明
本文章采用了svg-captcha方法去实现验证码功能,后端是express,前端是vue。
实现方式:
- 通过后端生成验证码,把验证码的值存到
session
中; - 再把验证码发到前端,前端去接收并把验证码在界面中显示出来;
- 前端输入验证码后提交到后端,和后端session中保存的验证码做对比,看是否一致。
svg-captcha使用步骤
- 安装svg-captcha
1
npm i svg-captcha -S
- 后端生成验证码
1 | const express = require("express"); |
- 前端接收
1 | <!-- html部分 --> |
运行效果:
API
svgCaptcha.create(options)
如果未传递任何选项,则将获得一个随机字符串,该字符串包含四个字符和相应的svg。
size
:4 //随机字符串的大小ignoreChars
:’0o1i’//过滤掉一些字符,例如0o1inoise
:1 //噪声线数color
:true //字符将具有不同的颜色而不是灰色,如果设置了背景选项,则为truebackground
:’#cc9966’// SVG图片的背景颜色
此函数返回具有以下属性的对象:
data
:字符串// svg路径数据text
:字符串//验证码文本
svgCaptcha.createMathExpr(options)
与创建api类似,您可以使用上述选项以及3个其他选项:
mathMin
:1 //数学表达式可以为的最小值mathMax
:9 //数学表达式可以为的最大值
mathOperator:+ //要使用+,-或的运算符+-(对于random +或-)
此函数返回具有以下属性的对象:
data
:string //数学表达式的svgtext
:string //数学表达式的答案
svgCaptcha.loadFont(url)
加载您自己的字体并覆盖默认字体。
ps: 这个api真心没弄懂
url
:string // 字体的路径此api是opentype.js的loadFont api的包装。
您可能需要围绕各种选项进行实验,以使自己的字体可访问。
svgCaptcha.options
访问全局设置对象。它用于create和createMathExpr api作为默认选项。
除了大小,噪点,颜色和背景之外,您还可以设置以下属性:
width
:数字//验证码的宽度height
:数字//验证码的高度fontSize
:数字//验证码文字大小charPreset
:字符串//随机字符预设
svgCaptcha.randomText([size|options])
返回一个随机字符串。
svgCaptcha(text, options)
根据提供的文本返回svg验证码。
在1.1.0之前的版本中,您必须调用这两个函数,
现在您可以调用create()保存一些按键;)。
根据api来设置options来实现api中的功能
根据之前的例子来进行举例:
多个干扰线,字体多种也是
1 | const express = require("express"); |
运行效果:
数学表达式验证码
1 | let options = { |
运行效果:
相关博客
-
2021-08-25
-
2020-06-04