利用 svg-captcha 插件制作验证码,首先安装 svg-captcha 插件:

1. npm i --save svg-captcha

然后在建一个 svgCaptcha.js 文件,文件内容:

1. // 获取验证码
2. const svgCaptcha = require('svg-captcha');
3.
4. module.exports = callback => {
5.     let codeConfig = {
6.         size: 5,// 验证码长度
7.         ignoreChars: '0o1i', // 验证码字符中排除 0o1i
8.         noise: 2, // 干扰线条的数量
9.         height: 45
10.     }
11.     let captcha = svgCaptcha.create(codeConfig);
12.     let sessionCaptcha = captcha.text.toLowerCase(); //存session用于验证接口获取文字码
13.     let codeData = {
14.         img:captcha.data
15.     }
16.     callback(sessionCaptcha,codeData);
17. }

callback返回验证码 (sessionCaptcha) 和验证码svg图片 (codeData) ;

使用在需要的API文件里:

1. const getCode = require('../model/svgCaptcha.js');
2.
3. // 获取验证码
4. exports.getCode = (req, res, next) => {
5.     getCode(function (code,img) {
6.         //存session用于验证接口获取文字码
7.         req.session.captcha = code;
8.         let data = {};
9.         if (code && img){
10.             data = {
11.                 code: 200,
12.                 msg: '获取成功',
13.                 data: img
14.             }
15.         } else {
16.             data = {
17.                 code: 400,
18.                 msg: '获取失败',
19.                 data: img
20.             }
21.         }
22.
23.         res.json(data);
24.     })
25. }

Node.js 制作验证码API