前端請(qǐng)求獲取驗(yàn)證碼接口若未,后端生成返回給前端弓颈,同時(shí)存入session
前端填寫驗(yàn)證碼,提交后和后端session里面存的值做對(duì)比
npm install --save svg-captcha
eggjs 使用案例
const svgCaptcha = require('svg-captcha'); // 頂部引入
captcha() {
const { ctx } = this
let captcha = svgCaptcha.createMathExpr({
mathMin: 1,
mathMax: 9,
background: '#FFF'
})
ctx.session.captcha = captcha.text
ctx.body = captcha.data
}
// 這里是生成captcha的邏輯,給前端data部分遍坟,是個(gè)svg裤翩,前端去渲染资盅。后端session里保存text部分
// 這里是數(shù)字,換成字母也是一樣的,去掉mathMin呵扛,mathMax參數(shù)即可
// 前端接口獲取每庆,渲染
<svg class="svg-icon" aria-hidden="true" v-html="svgContent"></svg>
登陸注冊(cè)時(shí),將驗(yàn)證碼輸入提交給后端
// 前端提交后今穿,后端比對(duì)
let { username, password, captcha } = this.ctx.request.body
if (captcha && captcha === this.ctx.session.captcha) {
console.log('校驗(yàn)碼正確缤灵,可以登錄')
} else {
console.log('校驗(yàn)碼不正確')
return
}