利用 svg-captcha 插件制作验证码,首先安装 svg-captcha 插件:
- npm i --save svg-captcha
然后在建一个 svgCaptcha.js 文件,文件内容:
- // 获取验证码
- const svgCaptcha = require('svg-captcha');
- module.exports = callback => {
- let codeConfig = {
- size: 5,// 验证码长度
- ignoreChars: '0o1i', // 验证码字符中排除 0o1i
- noise: 2, // 干扰线条的数量
- height: 45
- }
- let captcha = svgCaptcha.create(codeConfig);
- let sessionCaptcha = captcha.text.toLowerCase(); //存session用于验证接口获取文字码
- let codeData = {
- img:captcha.data
- }
- callback(sessionCaptcha,codeData);
- }
callback返回验证码 (sessionCaptcha) 和验证码svg图片 (codeData) ;
使用在需要的API文件里:
- const getCode = require('../model/svgCaptcha.js');
- // 获取验证码
- exports.getCode = (req, res, next) => {
- getCode(function (code,img) {
- //存session用于验证接口获取文字码
- req.session.captcha = code;
- let data = {};
- if (code && img){
- data = {
- code: 200,
- msg: '获取成功',
- data: img
- }
- } else {
- data = {
- code: 400,
- msg: '获取失败',
- data: img
- }
- }
- res.json(data);
- })
- }