前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis实现用户登录错误次数限制

Redis实现用户登录错误次数限制

作者头像
会跳舞的机器人
发布2018-09-21 16:12:37
3.3K0
发布2018-09-21 16:12:37
举报
文章被收录于专栏:会跳舞的机器人

系统登录的时候经常会有这种场景,如果密码连续N次输入错误,则要等N分钟之后才能重试。实现的方式有多种,比如在内存中维护一个数据结构来存储这些信息,但实现起来比较麻烦而且也存在问题,比如应用重启会导致数据丢失,并且内存的占用也是一个问题。

如果项目中已经有用到redis,那么使用redis来实现此功能是非常简单且有保障的。利用redis的String数据结构和超时自动过期机制,每错误一次,则错误值+1,并设置相应的过期时间,在登录的时候判断从key中获取到失败次数是否大于最大失败次数即可。

代码语言:javascript
复制
/**
 * 登录次数错误+1
 *
 * @param userName
 */
private void increaseFailedLoginCounter(String userName) {
	String key = ERROR_COUNT_KEY + userName;
	JedisCluster cluster = jedisClusterManager.getJedisCluster();
	String v = cluster.get(key);
	if (org.springframework.util.StringUtils.isEmpty(v)) {
		cluster.set(key, "1");
	} else {
		cluster.incr(key);
	}
	cluster.expire(key, 1800);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档