防止注册机,登录时-验证码图片的生成=前端vue+后端node
前端
1 2 3 4 5 6 7 8 9 10 | < section class="login-message"> < input type="text" maxlength="11" placeholder="验证码" v-model="captcha"> < img ref="captcha" class="get-verification" src="http://localhost:3000/api/captcha" alt="captcha" @click.prevent="getCaptcha()" > </ section > |
点击验证码图片事件
// 4. 获取图形验证码
getCaptcha() {
// 加一个时间戳作用:让验证码时时刻刻不一样
this.$refs.captcha.src = 'http://localhost:3000/api/captcha?time=' + new Date();
}
------------------------------------------------------------------------------
后端生成验证码接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | router.get( '/api/captcha' , (req, res) => { // 1. 生成随机验证码 let captcha = svgCaptcha.create({ color: true , noise: 3, // 三条干扰线 ignoreChars: '0o1i' , size: 4 }); // console.log(captcha.text); // 2. 保存 req.session.captcha = captcha.text.toLocaleLowerCase(); console.log(req.session); // 3. 返回客户端 res.type( 'svg' ); res.send(captcha.data); }); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?