Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【董天一】IPFS如何挖矿<Filecoin系统>?(一)
本来这篇文章应该晚一点写, 但是这几天一直有朋友在公众号留言, 迫切的想知道IPFS到底如何挖矿, 所以就提前写一篇关于IPFS挖矿的文章. 本文暂不涉及具体的技术细节, 只做大概的介绍.
圆方圆学院
2018/11/12
1K0
【董天一】IPFS如何挖矿<Filecoin系统>?(一)
【董天一】IPFS的竞争对手们(一)
        IPFS这个项目真的开发很慢,相比其它区块链项目,IPFS的进度可真是让小编捉急,恨铁不成钢啊。然而小编仍然对他们充满信心,来,借用一句盗梦空间里的经典台词:
圆方圆学院
2018/11/12
1.4K0
【董天一】IPFS和竞争对手们(二)
在上一篇《IPFS和竞争对手们(一)》的开头抱怨的IPFS的开发进度,今天才得知 MaidSafe 是从2006年起步的,这进度也是醉了。
圆方圆学院
2018/11/12
8790
【董天一】Filecoin: 影响力容错(PFT)和预期共识(EC)
这是filecoin协议里面对 PFT的解释,power概念就是矿工的影响力(influence),“Power”是filecoin系统的投票权力的大小度量,根据矿工贡献的Power来计算矿工的投票权有多大,根据信达雅的基本要求,所以称为“影响力容错”。之前曾经考虑过“权利容错”和“权益容错”,“权利”这个词本身表达不了大小的概念,而“权益”又跟Proof of Stake(权益证明:EC共识是在这个基础上进行的,有必要区分)有冲突,于是小编把这个词翻译成影响力容错。或许有更贴切的表达方式,欢迎讨论!
圆方圆学院
2018/11/12
8570
【董天一】Filecoin: 影响力容错(PFT)和预期共识(EC)
【董天一】IPFS vs Filecoin: 开发者该如何选择
小编最近经常接到一些开发者的咨询,我想用IPFS来做开发,该怎么提供解决方案(特别是对于区块链项目)那么今天我们就来说一下开发者面对IPFS和Filecoin的时候该如何选择
圆方圆学院
2018/11/12
8390
【董天一】IPFS vs Filecoin: 开发者该如何选择
【董天一】Filecoin: 矿工是怎么赚取FIL的
前提:矿工既可以单独参与检索矿工,也可以单独参与存储矿工。但是小编觉得,一起参与才是正道
圆方圆学院
2019/03/14
7910
【董天一】Filecoin: 矿工是怎么赚取FIL的
【董天一】IPFS:Filecoin和复制证明
这篇文章主要来讲一下Filecoin协议里面的复制证明(Proof of Replication),由于协议涉及到很多概念,可能看起来有点晕乎乎的,小编尽量把复杂问题简单化 ,力求给大家做大普及IPFS知识
圆方圆学院
2018/11/12
1.2K0
【董天一】IPFS:Filecoin和复制证明
笼罩在Filecoin上空的三朵乌云
Filecoin测试网络上线近4个月,经历第一阶段、互操作阶段,即将进入第二阶段,主网预计会在7月左右上线。Filecoin的大厦看似即将落成,所剩的只是一些修饰工作。
用户9624935
2022/04/02
3880
笼罩在Filecoin上空的三朵乌云
【董天一】Filecoin协议(挖矿)
        首先上一张图,图片来自于Filecon论文的截图。这上面涉及到很多技术,如果看不懂没关系,小编慢慢给大家讲解:
圆方圆学院
2018/11/12
7040
Filecoin的过去、现在和未来
Filecoin网络是在互联网架构变革的中期推出的。在这场变革中,脆弱的中心化服务(依赖于受信任方),正在被基于可验证计算的弹性去中心化解决方案所取代。互联网服务正在从低效的中心化单体服务转移到网络的边缘,这其中的推手是正在崛起的p2p市场。
用户9624935
2022/04/02
7100
Filecoin的过去、现在和未来
海豚扒问IPFS中国区布道人董天一:IPFS为什么可以超越HTTP
亲爱的粉丝们,今天又到了【海豚扒问】的深扒时间啦。萌主我一直很感谢大家一路对海豚区块链全新推出的【海豚扒问】栏目的支持,这一次我们请来最重量的嘉宾,他是谁?他为什么是我们海豚区块链如此仰慕,甚至需要深深膜拜的嘉宾?待萌主用一句诗句来形容他的气质以及为他这个行业做出的贡献。“桐花万里丹山路,雏凤清于老凤声”,这句诗出自李商隐,它正如董老师一样,朝气蓬勃,是勇于探索这个时代伟大的先知。他不是宋冬野歌里所唱的“董小姐”,他是董天一,IPFS/Filecoin中国区技术布道人,更是万卷诗书里《IPFS指南》的作者。他是北大才子,毕业于北京大学软件与微电子学院,并且曾担任甲骨文亚洲研发中心(中国)数据库开发工程师,是资深的区块链技术开发者,现致力于IPFS/Filecoin在中国的技术推广。他的出现启发了很多人,更启发了正在创业的小海豚。他对技术的痴迷,对新鲜事物无止境的探索,以及开拓新鲜事物却永不畏惧的精神,深深的影响着我。那么今天不再做铺垫了,现在我们以最原汁原味的方式来感受紧张的海豚与董老师的对话。
海豚区块链
2018/05/17
1K0
海豚扒问IPFS中国区布道人董天一:IPFS为什么可以超越HTTP
【董天一】Filecoin:募资详情和Token分发详情
    vesting period: 原先被小编翻译成了“锁定期”,这对于filecoin是不准确的,可能误导了一些读者,在这里给大家致歉。
圆方圆学院
2019/03/14
1.1K0
【董天一】Filecoin:募资详情和Token分发详情
【董天一】什么是IPFS?(三)
上面的应用场景是 IPFS的创始人 Juan Benet 在IPFS论文里面直接提到的. 有兴趣的同学可以去IPFS白皮书里面看一下。
圆方圆学院
2018/11/12
1K0
【董天一】什么是IPFS?(三)
【董天一】什么是IPFS?(一)
写在前面: 今天先写到这里,关于IPFS的所有事情小编都想快点告诉大家,但毕竟精力有限,小编尽量抽出时间提供更多的关于IPFS的信息。
圆方圆学院
2018/11/12
1.1K0
【董天一】什么是IPFS?(一)
【董天一】关于IPFS的热门问题
        目前网络上有一些对ipfs的解读五花八门,各式各样,有看好的,也有打击的,总之一项新技术诞生之初遇到的问题IPFS都遇到了。
圆方圆学院
2018/11/12
1K0
【董天一】关于IPFS的热门问题
Filecoin全球公测的意义
美西时间2019年12月11日,中国时间12月12日,Filecoin测试网上线。我参与了部分测试网的一些测试工作,期间有一些不成熟的思考,总结下来,与诸君分享。
用户9624935
2022/04/02
4720
Filecoin全球公测的意义
【董天一】Filecoin2017年Q4进度更新(完整版)
自从Token销售完成以后,我们便开始集中精力把Filecoin项目从设想变为现实-从实现Filecoin协议的核心代码到打造我们优秀的团队。下面是来自于我们团队的进度更新,以及一些我们期望您和社区来参与的工作。
圆方圆学院
2019/03/14
5050
【董天一】Filecoin2017年Q4进度更新(完整版)
【董天一】一场IPFS引领下的共享之风正在走向区块链
中国互联网的高速发展 已经接近10年,小编完整的经历这个过程。这一切我们从一个小网站 饭否 说起。。。
圆方圆学院
2018/11/12
5720
【董天一】IPFS:世界正在悄然发生变化
        2015-05-05 Juan Benet 在自己的终端里面敲入了下面的文字:
圆方圆学院
2018/11/12
9690
【董天一】IPFS:世界正在悄然发生变化
为什么说IPFS和Filecoin是构建Web3的基石?
之前我编译了一篇文章:《Web3的三次革命》,介绍Web3的发展历程以及历史钟摆的趋势。这篇文章被大量自媒体转载,并产生了上万的阅读量。鉴于疫情的原因和互联网的内卷化发展,Web3越来越受到人们的关注。那么Web3到底是什么?为什么说IPFS和Filecoin是构建Web3的重要基石?
用户9624935
2022/04/02
4980
为什么说IPFS和Filecoin是构建Web3的基石?
相关推荐
【董天一】IPFS如何挖矿<Filecoin系统>?(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档