2021年6月7日星期一

Redis限制一键登录次数

一、产生背景

之前的随笔提到过项目中写了一键登录功能、上线后除了有时候网络波动会导致登陆失败,其他情况一直稳如老狗

image

しかし,邮件看到有人恶意刷一键登录,这年头闲的人可真闲啊,
只能思考如何搞一搞

image

二、解决思路

因为项目实现一键登录采用的是 自有服务器调用 所以限制一键登录分为两步走,因为每个手机号有唯一的openid所以拿openid做redis的key值

(1)、调用云函数之前

调用云函数之前,前端会发起请求给后台,拿到这个请求后去 Redis 中检查2小时的登录次数如果大于设定阈值就返回限制一键登录次数,否则就放行通过

(2)、调用云函数

调用时使用Redis的 setNX()(命令在指定的 key 不存在时,为 key 设置指定的值,这种情况下等同 SET 命令。当 key存在时,什么也不做。)因为第一次不存在key所以设置一个初始值和过期时间。接下来使用Redis的 incrBy() 使value自增,每次调用value就+1。

三、上手编码

(1)、调用云函数前编码

public static void checkOneLogin(String openid) {  if (StringUtils.isBlank(openid)) {   "参数校验,抛出自定义异常即可";  }  //从Redis获取该用户半小时内登录次数  String s = RedisHelper.get(RedisHelper.get(openid));  //如果为空直接返回  if (StringUtils.isBlank(s)){   return;  }  //如果redis存储OpenId并且 value大于10抛出异常  if (Integer.parseInt(s) >= 10) {   log.info("[日志]用户{}在{}因一键登录次数过多,被暂时禁止一键登录",openid,new Date());   "记录日志,抛出异常";  } }

(2)、调用云函数编码

public static void oneLoginOK(String openid) {  //首次进入赋予默认值  boolean nx = RedisHelper.setNx(RedisHelper.get(openid), "1", 60 * 30);  //首次进入返回  if (nx) {   return;  }  //登录成功自增1  Long incr = RedisHelper.incrBy(RedisHelper.get(openid));  if (incr >= 10) {   //设置过期时间   RedisHelper.expire(RedisHelper.get(openid), 60 * 60 * 2);  } }

写的不是很规范,实际开发要加Redis头等 总的来说遇到的问题也不老少,还有云函数内存不够的情况、、网络稍有问题也会出现问题~~~

image









原文转载:http://www.shaoqun.com/a/786372.html

跨境电商:https://www.ikjzd.com/

naning9韩国官网:https://www.ikjzd.com/w/2401

韩蓬:https://www.ikjzd.com/w/1635

kkr:https://www.ikjzd.com/w/1340

custommade:https://www.ikjzd.com/w/2514


一、产生背景之前的随笔提到过项目中写了一键登录功能、上线后除了有时候网络波动会导致登陆失败,其他情况一直稳如老狗しかし,邮件看到有人恶意刷一键登录,这年头闲的人可真闲啊,只能思考如何搞一搞二、解决思路因为项目实现一键登录采用的是自有服务器调用所以限制一键登录分为两步走,因为每个手机号有唯一的openid所以拿openid做redis的key值(1)、调用云函数之前调用云函数之前,前端会发起请求给后
Splitly:https://www.ikjzd.com/w/554
wintopay:https://www.ikjzd.com/w/1484
Meesho:https://www.ikjzd.com/w/2017
诚商新视界:https://www.ikjzd.com/w/2271
NARF计划:https://www.ikjzd.com/w/2583
拍拍购物:https://www.ikjzd.com/w/2205
tiki:https://www.ikjzd.com/w/2053
口述:我和老公打情骂俏被闺蜜扇耳光:http://lady.shaoqun.com/m/a/10546.html
口述:隐婚夫妻生活被女秘书搅乱(5/5):http://lady.shaoqun.com/m/a/68147.html
口述:老公喜欢在公共场合与我亲热(2/2):http://lady.shaoqun.com/m/a/79454.html
口述:老婆太土我不愿带她见朋友:http://lady.shaoqun.com/a/273813.html
妹妹给老公按摩 他有了生理反应:http://lady.shaoqun.com/a/270935.html
相亲时前夫来电话问我内衣尺码:http://www.30bags.com/a/253817.html
为了那100万 我为老板娘代孕:http://www.30bags.com/a/253014.html
口述在车里被大叔偷吻 大叔下面的做法让我迷恋:http://www.30bags.com/m/a/250249.html
美丽人妻被快递員干 娇妻口述拿快递时在电梯里遭到快递員的侵犯:http://www.30bags.com/m/a/254503.html
老公出轨被揭发后破罐子破摔:http://www.30bags.com/m/a/252182.html

没有评论:

发表评论