PHP实现登录5次锁定用户
所属分类: PHP模块 2020-11-05 14:09:40 编辑:admin 浏览次数 1488 次
登录锁定:意思是在用户登录过程中,密码多次尝试后,就被锁定一个小时,管理员重置密码或者等一个小时就又可以使用了。
大体实现思路:
1.表设计:在用户表中users
Id
Logincount 登录次数
Lastlogtime 最后登录时间
2.在用户登录时,记录最后登录时间和登录次数,无论是否密码验证成功都记录
3.还是在登录时查询数据库,验证用户超时判断登录是否超过5次,时间是否超过一个小时,如果是,则限制登录。
4.如果时间超过一小时,则登录次数重置,否则登录次数加+1
实现代码:
//判断超时判断登录是否超过5次,时间是否超过一个小时
$user = 查询数据库;
if($user['lastlogtime'] + 3600 > time() && $user['logincount'] >=4){
return [''msg' => '该账号登录次错误数过多,请1小时后在试'];
}
if($hasUser['lastlogtime'] + 3600 < time()){
DB::table('user')->where('id',$User['id'])->update(['logincount'=>1,'lastlogtime'=>time()]);
return ['msg' => '用户名密码错误,还有4次机会尝试'];
}else{
DB::table('user')->where('id',$User['id'])->update(['logincount'=>Db::raw('logincount+1'),'lastlogtime'=>time()]);
return ['msg' => '用户名密码错误,还有'.(4-$User['logincount']).'次机会尝试'];
}
}