Code前端首页关于Code前端联系我们

ThinkPHP5开发技巧: 实现登录验证次数,超过次数则冻结用户

terry 2年前 (2023-09-24) 阅读数 50 #后端开发

总体思路:

1。新建一个数据表,记录登录状态(网上很多正确登录也记录了,我觉得没必要,只记录错误记录就够了)

2.每次登录验证时询问验证错误次数

3。出现登录错误时插入错误记录

4。以上验证过程属于同一个IP。在同一个IP下操作,也可以根据情况删除

具体代码如下:

DROP TABLE❿❿❿❿ EX ISTS `rs_user_login_info` « 整数 无符号 NOT NULL 自动增量, `uid` ❓ 无符号 NULL `ipaddr` varchar(15) NOT NULL❀MENT '用户登录IP ' `登录时间' int NOT NULL❿❿❿ MENT '用户登录时间'KEY (`id`)) ENGINE=InnoDB AUTO_INCRMENT=7 DEFAULT CHARSET=utf8;
/**♿♿* public = request()->post() '账户','''); ,''); {     $这个->错误('请输入您的账号'); $密码 == '' ){                        }  //实例化模型\Admin() $us = 模型\用户登录信息( );$ = ['帐户' ' >  $帐户​? $where)->find(); if(!$userInfo❿❿)   $这个->错误( '账号或密码错误'); }                                                                      用户信息['id' ); ->错误('密码输入错误超过1小时10次,用户将被禁用1小时');    ‸}     如果(' 'id' ];                 $错误数据['登录时'     fo_mod->保存( $错误数据);$这个->错误('账号或密码错误'); //更新上次登录时间 $userInfo->isUpdate(true)->save(               'last _login_time' => 时间( ) ,],'id')取消设置($userInfo['密码']); $userInfo['状态'])'last_login_time']);     取消设置($userInfo ['last_login_time' ]);  ] 会话('adminInfo',$userInfo)         $这个 ->重定向(' '♾'); * 注:查看同一 IP 最近一小时密码输入错误次数(超过 10 次则返回错误) * 用户:Wendy_33 2* 时间:14:33 *// ){ $userLoginInfo_mod = ❓❿ model\UserLoginInfo( );$whereMap=数组 (, '记录时间' =>

/使用比较标签

); $count = $userLoginInfo_mod$where⸝(->where )->计数(); //  正确;    }     }

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门