使用redis封锁用户的登录权限

在考虑有redis的情况下我们可以使用redis中的set来记录当前某个用户在一段时间内他输入密码/账号导致他登录不上去,每次登陆不上去之后记录这个用户的登录错误次数的这个集合就+1视为num+=1,如

num = red.get("black_"+email).decode()
if num<5:
    num+=1
    red.set("black_"+email,num)

这样就能够简单的设置一个已经存在的key,

但是这个是用来测试一下用户在短时间里面输入错误的次数,所以说到了一定的时间就会有一个删除在第一次出错的时候就应该提前去判断一下是否有这个key,如果获取到当前用户的这个key就说明当前的用户不第一次在短时间内输错密码,所以就判断在当前这个时间内他一共输错了几次,如果当他输错的次数大于一定的次数之后就在设置一个key用来间接性的封锁账号半个小时,在这个半个小时被封的时候就要提前的去这个键中找用户在输错之前是否还处于一个锁定的状态,在来判定能否获取到以及错误次数,如果这些信息都无法获取就说明这个 用户是第一次输错的就 需要给他新整一个集合存储用户的email和出错次数方便下次用来判断

 一个大体的流程和思路,不过注意的是,在取出redis中的数据是一个字节串,需要通过decode()解码才能做一个比对,还有就是在代码流程中的使用,何为登录成功和失败什么时候开始校验一下黑名单,什么时候开始校验登录次数以及何时判断是否是第一次输入错误,何时创建和累加次数等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清夢懮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值