防止注册机,登录时-验证码图片的生成=前端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);
});

  



posted @   小白咚  阅读(536)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示