【Java接口】限制App登录次数
2017-03-30 09:33
183 查看
有一APP客户端需要增加一个功能,限制用户输入密码登陆次数1小时内不得超过5次尝试,否则认为是在作弊,将予以保护不得用户再继续进行操作。
此处应该加锁,但是加锁会影响登录效率.看题目发现用户id是作为传入参数。所以我们可不可以拿用户id作为一个锁呢?这样就只会锁住该用户,而不会锁住别人.使用Redis作为缓存,key为用户id。
其他逻辑处理代码这里省略,只写最关键的代码块:
int count = Integer.parseInt(countObj.toString());
//expire:设置key的时间,第三个参数是时间的单位,这里设置为"秒"
if(count == 1)
redisTemplate.expire("用户id",30, TimeUnit.SECONDS);
if(count <= 5)
System.out.println(String.format("第%d次登录成功", count));
else
System.out.println("超过5次登陆,对不起不能这么频繁登陆.");
这个解决方案是借助第三方组件实现的,主要从代码效率方面考虑,随着现代软件的不断发展,这样代码的思想使用会越来越广,所以开发的时候一定要多思考再下手写代码。
此处应该加锁,但是加锁会影响登录效率.看题目发现用户id是作为传入参数。所以我们可不可以拿用户id作为一个锁呢?这样就只会锁住该用户,而不会锁住别人.使用Redis作为缓存,key为用户id。
其他逻辑处理代码这里省略,只写最关键的代码块:
int count = Integer.parseInt(countObj.toString());
//expire:设置key的时间,第三个参数是时间的单位,这里设置为"秒"
if(count == 1)
redisTemplate.expire("用户id",30, TimeUnit.SECONDS);
if(count <= 5)
System.out.println(String.format("第%d次登录成功", count));
else
System.out.println("超过5次登陆,对不起不能这么频繁登陆.");
这个解决方案是借助第三方组件实现的,主要从代码效率方面考虑,随着现代软件的不断发展,这样代码的思想使用会越来越广,所以开发的时候一定要多思考再下手写代码。
相关文章推荐
- [转]CentO下限制SSH登录次数
- 登录错误次数限制及参数化传递防止sql注入
- spring security实现限制登录次数功能
- 手机验证码 发送邮件 登录次数 限制
- Shiro security限制登录尝试次数
- 登录失败次数限制(原生php代码实现)
- asp.net限制用户登录错误次数
- 限制次数登录(ADO.Net)
- winfron用户登录完整版,可限制用户登录次数
- 【Java】SpringMVC项目利用Shiro设置固定时间内密码登录重试次数限制
- Oracle用户连续登录失败次数限制如何取消
- 限制登录次数
- asp.net限制用户登录错误次数
- spring security实现限制登录次数功能
- Linux如何通过PAM限制用户登录失败次数
- perl脚本实现限制ssh最大登录次数(支持白名单)
- 网路编程(TCP练习:上传文件、并发访问、限制登录次数)
- 登录次数限制实例
- 取消Oracle用户密码登录错误次数限制