限制登录次数


题目:有一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次登陆,对不起不能这么频繁登陆.");

  这个解决方案是借助第三方组件实现的,主要从代码效率方面考虑,随着现代软件的不断发展,这样代码的思想使用会越来越广,所以开发的时候一定要多思考再下手写代码。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM