首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >nodejs使用redis模块并实现图形验证码功能

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

作者头像
w候人兮猗
发布于 2020-07-01 09:11:14
发布于 2020-07-01 09:11:14
1.3K00
代码可运行
举报
运行总次数:0
代码可运行

Contents

nodejs连接redis模块

redis的使用
  • 安装 redis 模块
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 npm install redis --save
  • 进行redis的一些配置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
    redis:{
        url:'localhost',
        port:6379,
        password:'123456'
    }
}

上述配置中,urlredis服务的地址。portredis服务的端口号,这里是默认端口,passwordredis的密码。

  • 编写redis工具函数

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

代码语言:javascript
代码运行次数:0
运行
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函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  redisHelper.setString('name','w候人兮猗',60 * 3).then((res)=>{
                console.log('设置成功')
            }).catch((err=>{
                console.log('设置失败',err)
            }))
  1. redisHelper.getString(key) 获取redis函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
redisHelper.getString('name')
               .then(result=>{
                   return res.json(result)
               })
               .catch(err=>{
                   console.log(err)
               })
实现图形验证码
  • 安装svg-captcha模块
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install svg-captcha --save
  • 使用svg-captcha模块
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const svgCaptcha = require('svg-captcha')

const captcha = svgCaptcha.create({
                // 翻转颜色
                inverse: false,
                // 字体大小
                fontSize: 36,
                // 噪声线条数
                noise: 2,
                // 宽度
                width: 80,
                // 高度
                height: 30,
            });

captcha就是生成的验证码实例 – 将验证码保存至redis

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 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('验证码获取失败')
                })
            })
  • 查看结果 使用postman调我们写好的接口

查看redis中

总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年2月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Koa结合Svg-captcha实现用户验证码登录
在开发用户登录系统时,经常要用验证码验证登录是否为人为的操作,以防止有人用密码字典暴力破解,svg-captcha这个模块就是专门用来干这个的,下面给大家介绍一下它的使用方法。
越陌度阡
2020/11/26
1.2K0
记一个node实现的图形验证码从0到1
记一个node实现的图形验证码从0到1 最近做了一个项目,需要用到给用户发送短信验证码,短信必然走的是第三方的服务。。 so 每一条都是收费的,所以在短信验证码之前,我们需
贾顺名
2018/04/12
1K0
记一个node实现的图形验证码从0到1
浅谈 前端验证码那些事
在实际项目的开发中,验证码的出现的频率相当高,它能实现人机甄别访问、减轻服务器负担的作用。常见的验证码为以下几类:
万少
2025/02/10
2350
浅谈 前端验证码那些事
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.2K0
常用验证码之滑动验证码|图形验证码
这里是常用验证码的第三篇——滑动/图形验证码。在前两篇已经实现了随机验证码和算术验证码,感兴趣的可以去看一下~
流眸
2020/07/06
22.6K1
Java图形验证码支持gif、中文、算术等
图形验证码是最经典,也是最常用的验证方式。今天介绍一个非常不错的类库:Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。
BUG弄潮儿
2020/10/19
1.1K0
04 . Gin+Vue开发一个线上外卖应用(用户名密码和图形验证码)
在下载后的base64Captcha库的目录中,可以看到有_example和_example_redis两个目录。第一个example是用于演示生成验证码和验证码的示例代码。
iginkgo18
2020/11/12
1K0
04 . Gin+Vue开发一个线上外卖应用(用户名密码和图形验证码)
redis入门
Redis是一个内存高速缓存数据库,redis全称 Remote Dictionary Server(远程数据服务) Redis是一个key-value存储系统,它支持很多数据类型:string、list、set、zset、hash Redis以内存作为存储介质,读写数据效率高,远超过数据库。 Redis也支持持久化存储,即将数据定时存储备份到硬盘,当遭遇停电或者宕机的情况下数据不至于丢失。
epoos
2022/06/06
3890
面向前端工程师的Nodejs入门手册(三)
前面两篇从前端入门的视角去学习认识了Nodejs,接下来将真正从实战角度来看看Nodejs能做什么,如何从零到一的去完成你的全栈项目。
用户1462769
2019/08/26
1.1K0
面向前端工程师的Nodejs入门手册(三)
原生 JavaScript + NodeJS(Express 框架) 做一个简陋的登录注册项目
配置在 config/default.js ,当然可以在具体文件配置,但是这儿方便一点
Rikka
2022/01/20
9890
Nest.js 实战 (七):如何生成 SVG 图形验证码
在客户端登录的时候,我们就能根据传过来的验证码与 Session 中的信息判断是否正确:
白雾茫茫丶
2024/08/06
4270
Nest.js 实战 (七):如何生成 SVG 图形验证码
node.js+vue.js搭建程序设计类课程教学辅助系统
  毕业才刚刚两个多月而已,现在想想大学生活是那么的遥不可及,感觉已经过了好久好久,社会了两个月才明白学校的好啊。。。额,扯远了,自从毕业开始就想找个时间写下毕设的记录总结,结果找了好久好久到今天才开始动笔。
用户2038589
2018/10/10
2.5K11
从零玩转腾讯滑块验证码
现在大部分公司的前端都是以滑块验证码进行验证机器人行为,后端也有但差不多都是图形验证码或者手机验证码,直接进入主题接下来我们要玩转的技术 是腾讯云出品的滑块验证码(可以免费领取5W以上的免费次数有效期限一年哦)
杨不易呀
2022/01/19
11.8K7
从零玩转腾讯滑块验证码
nodejs集成redis
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
OECOM
2020/07/01
9810
springbooot使用google验证码
由于需要做一个前后端分离的项目,想着使用google验证码,由于年龄大了,这些知识啊,用完就忘,在这里记录一下。
魚迹
2023/05/06
4790
springbooot使用google验证码
一文搞懂Go整合captcha实现验证码功能
最近在使用Go语言搞一个用户登录&注册的功能,说到登录&注册相关,我们油然会产生一种增加验证码的想法,因此着手实现,后来在GitHub上找到了这个名叫captcha的插件,于是就利用文档进行了初步的学习,并融入到自己的项目中,整个过程下来感觉这个插件的设计非常巧妙,所以就想写一篇文章分享一下,通过本篇文章,你会学到:
闫同学
2024/02/07
7400
NodeJS操作Redis
新建test.js,然后在目录下执行npm install redis var redis = require('redis'); var client = redis.createClient(6379,'127.0.0.1'); client.on('connect', function() { console.log('connected'); }); //string client.set('framework', 'AngularJS'); client.get('framework',f
苦咖啡
2018/04/28
3.7K0
使用腾讯云TCB云函数实现生成随机验证码功能
最近在玩云函数,发现官方文档上说了 http 访问服务时可以使用集成响应返回二进制文件。
薛定喵君
2020/11/09
1.9K0
uni-app 接入极验验证码攻略
uni-app 的项目中需要接入极验验证码,根据极验官方文档,只能在微信的 wxml 页面中引入模板,但是对于每个页面都有接口调用的情况下,手动加是不可能的,开发量大,测试工作量也大,需要回归整个app,但是官方也没有提供类似全局api的形式给到 js 去调用,小程序不像H5 是可以临时插入dom进行操作的,所有要做到全局把控,只能通过中间页的形式。
前端小tips
2021/12/09
2.5K0
uni-app 接入极验验证码攻略
相关推荐
Koa结合Svg-captcha实现用户验证码登录
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验