账号锁定功能

Posted anle123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了账号锁定功能相关的知识,希望对你有一定的参考价值。

利用redis数据库实现账户锁定

  • 需求 –> 用户输入密码错误,连续错误三次以上,封锁账号在设定时间内不能再登录,直至封锁时间结束后用户才能再登录。
  • 首先我们用到redis中的 lpush – expire – ttl – llen 其方法
    技术图片
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    COPY
    
    # 建立连接连接
    host = "localhost"
    port = 6379
    r = redis.Redis(host=host,port=port)
    #用户名
    username = 123
    
    
    #账号密码输入错误5次后锁住账号逻辑
    #列表操作
    r.lpush(username,1)
    
    #设置过期时间,单位是秒
    r.expire(username,30)
    #打印过期时间
    print(r.ttl(username))
    #打印列表长度
    print(r.llen(username))
    if r.llen(username) > 3:
        print(你的账号被锁定)
    View Code

    以下是在项目中实现锁定功能

    技术图片
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    COPY
    #登录接口
    class Login(APIView):
        def get(self,request):
            #接收参数
            username = request.GET.get(username,None)
            password = request.GET.get(password,None)
            #验证验证码
            if code != redis_code:
                return Response({code:403,message:验证码错误})
            #如果用户的列表长度大于等于3
            if r.llen(username) >= 3:
                return Response({code:403,message:你的账号已被锁定})
            #查询用户数据
            user = User.objects.filter(username=username).first()
            if user:
                #比较密码是否一致,如果一致则登录成功
                if user.password == make_password(password):
                    return Response({code:200,message:登陆成功,uid:user.id,username:user.username})
                #不一致则计数加1,返回密码错误
                else:
                    r.lpush(username,1)
                    r.expire(username,30)
                    return Response({code:403,message:用户名或密码错误})
            else:
                return Response({code:403,message:用户名或密码错误})
    View Code

     

     

     

以上是关于账号锁定功能的主要内容,如果未能解决你的问题,请参考以下文章

通过游戏学python 3.6 第一季 第七章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账

最近开始努力学python 写了一个python小代码:判断一个登陆程序,如果账号密码输错3次,锁定账号无法再登陆

如何在不锁定活动方向的情况下锁定片段方向?

WIN7系统不知为何没办法修改账户锁定时间

Oracle账号被锁定如何解锁

我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?