使用验证码可以防止暴力破解,和重复操作等好处,这里直接说如何使用

安装
npm install --save svg-captcha
router部分:
module.exports = app => {
const { router, controller } = app;
router.get('/api/verify', app.controller.base.verify); // 验证码
}
生成,Controller 部分:
const Controller = require('egg').Controller;
class BaseController extends Controller {
async verify() {
const { ctx } = this;
let captcha = await this.service.tools.captcha(); // 服务里面的方法
ctx.response.type = 'image/svg+xml'; // 知道你个返回的类型
ctx.body = captcha.data; // 返回一张图片
}
}
module.exports = BaseController;
Service 部分:
const Service = require('egg').Service;
const svgCaptcha = require('svg-captcha');
class ToolsService extends Service {
// 产生验证码
async captcha() {
const captcha = svgCaptcha.create({
size: 4,
fontSize: 50,
width: 100,
height: 40,
bacground: '#cc9966'
});
this.ctx.session.code = captcha.text;
return captcha;
}
}
module.exports = ToolsService;
postMan可以请求到该方法

取得session中的验证码,controller中直接试了一下
// 对比验证码
async verify_code() {
console.log("进入了测试")
const { ctx, app } = this;
let headersCC = ctx.session.code;//获得session中的验证码
console.log(headersCC, "查看token的内容");
ctx.body = headersCC;
}
可以使用

网友评论