Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >nodejs使用redis实现图形验证码功能

nodejs使用redis实现图形验证码功能

原创
作者头像
w候人兮猗
修改于 2020-06-24 09:10:58
修改于 2020-06-24 09:10:58
1.1K0
举报

nodejs连接redis模块

redis的使用
  • 安装 redis 模块 npm install redis --savemodule.exports = { redis:{ url:'localhost', port:6379, password:'123456' } }上述配置中,urlredis服务的地址。portredis服务的端口号,这里是默认端口,passwordredis的密码。
  • 进行redis的一些配置
  • 编写redis工具函数

内容太多了,具体看代码及注释吧。

代码语言:txt
AI代码解释
复制
const redis = require('redis');
const config = require('./keys').redis

const client = redis.createClient(config.port, config.url); // 实例redis对象

//连接错误处理
client.on("error", err => {
    console.log('redis connect err', err);
});

client.on('connect', () => {
    console.log('redis connect success');
})

//验证redis
client.auth(config.password);

const redisHelper = {};

/**
 * redisHelper setString function
 * @param key
 * @param value
 * @param expire
 */
redisHelper.setString = (key, value, expire) => {
    return new Promise((resolve, reject) => {
        client.set(key, value, function (err, result) {

            if (err) {
                console.log(err);
                reject(err);
            }

            if (!isNaN(expire) && expire > 0) {
                client.expire(key, parseInt(expire));
            }
            resolve(result)
        })
    })
}

/**
 * redisHelper getString function
 * @param key
 */
redisHelper.getString = (key) => {
    return new Promise((resolve, reject) => {
        client.get(key, function (err, result) {
            if (err) {
                console.log(err);
                reject(err)
            }
            resolve(result)
        });
    })
}

module.exports = redisHelper;
  • 使用redis
  1. redisHelper.setString(key, value, expire) 设置redis函数 redisHelper.setString('name','w候人兮猗',60 * 3).then((res)=>{ console.log('设置成功') }).catch((err=>{ console.log('设置失败',err) }))
    image
    image
  2. redisHelper.getString(key) 获取redis函数redisHelper.getString('name') .then(result=>{ return res.json(result) }) .catch(err=>{ console.log(err) })
    image
    image
实现图形验证码
  • 安装svg-captcha模块npm install svg-captcha --save
  • 使用svg-captcha模块const svgCaptcha = require('svg-captcha') const captcha = svgCaptcha.create({ // 翻转颜色 inverse: false, // 字体大小 fontSize: 36, // 噪声线条数 noise: 2, // 宽度 width: 80, // 高度 height: 30, });captcha就是生成的验证码实例 redisHelper.setString(email, captcha.text.toLowerCase(), effectTime).then(result => { if (result) { res.setHeader('Content-Type', 'image/svg+xml'); res.write(String(captcha.data)); res.end(); } }).catch(err => { console.log(err); return res.json({ ...MsgUtil.createWarnMsg('验证码获取失败') }) })
  • 将验证码保存至redis
  • 查看结果 使用postman调我们写好的接口
    image
    image
    查看redis中
    image
    image
总结

简单的写了一下node如果使用redis以及如何生成图形验证码。主要目的是为了在设计登陆注册的时候有图形验证码可以简单防止频繁的刷登陆注册接口。将验证码存于redis中主要是因为redis是一个key-value类型的缓存。用完即删除,十分适用于这样的临时存值的需求

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Node实现图形验证码
使用 svg-captcha 这个包并结合后端实现图形验证码功能。 项目地址:https://github.com/Ewall1106/mall 基本使用 在我们项目中安装 svg-captcha 包。 $ npm install svg-captcha --save 官方文档中的基本使用示例: const svgCaptcha = require('svg-captcha'); const captcha = svgCaptcha.create(); console.log(captcha);
Ewall
2020/11/12
1.6K0
nodejs实现图形验证码
nodejs生成图形验证码可以自己写一个,我感觉比较麻烦,因为有现成的……下面我来介绍一下这个现成的验证码生成模块:svg-captcha
OECOM
2020/07/02
3.3K0
Nest.js 实战 (七):如何生成 SVG 图形验证码
在客户端登录的时候,我们就能根据传过来的验证码与 Session 中的信息判断是否正确:
白雾茫茫丶
2024/08/06
4560
Nest.js 实战 (七):如何生成 SVG 图形验证码
浅谈 前端验证码那些事
在实际项目的开发中,验证码的出现的频率相当高,它能实现人机甄别访问、减轻服务器负担的作用。常见的验证码为以下几类:
万少
2025/02/10
2560
浅谈 前端验证码那些事
云开发系列(一):实现验证码登录
终端作为所有用户的真正使用设备,终端开发者也是离用户最近的开发人员,它肩负着将后方提供的一个又一个独立服务整合为体验良好的产品的使命。面对不同的场景,所挑选的后方服务不同,实现方法也不同。
楚歌
2020/11/22
3.8K1
使用腾讯云TCB云函数实现生成随机验证码功能
最近在玩云函数,发现官方文档上说了 http 访问服务时可以使用集成响应返回二进制文件。
薛定喵君
2020/11/09
2K0
Koa结合Svg-captcha实现用户验证码登录
在开发用户登录系统时,经常要用验证码验证登录是否为人为的操作,以防止有人用密码字典暴力破解,svg-captcha这个模块就是专门用来干这个的,下面给大家介绍一下它的使用方法。
越陌度阡
2020/11/26
1.2K0
使用云函数构建短信验证码服务的案例
通过手机短信发送验证码,是最普遍、最安全验证用户真实身份的方式。目前,短信验证码广泛应用于用户注册、密码找回、登录保护、身份认证、随机密码、交易确认等应用场景。
haimingli
2020/12/29
4.1K0
原生 JavaScript + NodeJS(Express 框架) 做一个简陋的登录注册项目
配置在 config/default.js ,当然可以在具体文件配置,但是这儿方便一点
Rikka
2022/01/20
1K0
node.js+vue.js搭建程序设计类课程教学辅助系统
  毕业才刚刚两个多月而已,现在想想大学生活是那么的遥不可及,感觉已经过了好久好久,社会了两个月才明白学校的好啊。。。额,扯远了,自从毕业开始就想找个时间写下毕设的记录总结,结果找了好久好久到今天才开始动笔。
用户2038589
2018/10/10
2.5K11
【serverless实战】利用腾讯云·云开发实现短信验证码
最近支持了云开发的自定义短信验证码登录功能。第一次体会到利用云开发自身能力,开箱即用的快感。所有的精力集中在业务逻辑和数据库设计上,不用花费过多的精力浪费在运维上。
心谭博客
2020/05/06
3.7K0
springbooot使用google验证码
由于需要做一个前后端分离的项目,想着使用google验证码,由于年龄大了,这些知识啊,用完就忘,在这里记录一下。
魚迹
2023/05/06
4920
springbooot使用google验证码
VueblogServer项目短信验证码登录功能前端实现
上次我在本人的公众号上发了一篇后端Spring Security认证框架下实现手机短信验证码登录功能的文章手把手带你在集成SpringSecurity的SpringBoot应用中添加短信验证码登录认证功能,但是用户不可能通过调用接口去认证,只会是在前端页面通过点击按钮来登录认证,这就涉及前端功能的实现及与后端接口的联调了。
用户3587585
2022/04/14
1.7K0
VueblogServer项目短信验证码登录功能前端实现
Java图形验证码支持gif、中文、算术等
图形验证码是最经典,也是最常用的验证方式。今天介绍一个非常不错的类库:Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。
BUG弄潮儿
2020/10/19
1.1K0
Java 图形验证码
 Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。
JokerDJ
2023/11/27
5240
Java 图形验证码
常用验证码之滑动验证码|图形验证码
这里是常用验证码的第三篇——滑动/图形验证码。在前两篇已经实现了随机验证码和算术验证码,感兴趣的可以去看一下~
流眸
2020/07/06
22.8K1
springboot整合redis发送手机验证码注册登录
短信验证码是通过发送验证码到手机的一种有效的验证码系统。主要用于验证用户手机的合法性及敏感操作的身份验证。常见的使用场景有:登录注册、信息修改、异常登录、找回密码等操作。 用户注册发送验证码,然后核实对比用户注册成功采用redis方式将手机号码+key放入redis缓存中设置验证码超时时间,比对用户名和验证码采用数据库存储方式,注册时拿取redis中验证码进行判读验证码是否过期是否匹配。
崔笑颜
2020/06/08
7.6K0
一文搞懂Go整合captcha实现验证码功能
最近在使用Go语言搞一个用户登录&注册的功能,说到登录&注册相关,我们油然会产生一种增加验证码的想法,因此着手实现,后来在GitHub上找到了这个名叫captcha的插件,于是就利用文档进行了初步的学习,并融入到自己的项目中,整个过程下来感觉这个插件的设计非常巧妙,所以就想写一篇文章分享一下,通过本篇文章,你会学到:
闫同学
2024/02/07
7680
redis入门
Redis是一个内存高速缓存数据库,redis全称 Remote Dictionary Server(远程数据服务) Redis是一个key-value存储系统,它支持很多数据类型:string、list、set、zset、hash Redis以内存作为存储介质,读写数据效率高,远超过数据库。 Redis也支持持久化存储,即将数据定时存储备份到硬盘,当遭遇停电或者宕机的情况下数据不至于丢失。
epoos
2022/06/06
3910
nodejs集成redis
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
OECOM
2020/07/01
9860
相关推荐
Node实现图形验证码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档