我正在尝试在laravel 4.2中开展一个项目但现在,我想限制用户的登录尝试次数。大多数解决方案都是laravel 5并且我不熟悉5.所以任何有想法的人我都需要你的帮助。谢谢。
$data = Input::all();
$rules = array(
'username' =>'required|',
'password' => 'required|min:6'
);
$validator = Validator::make($data, $rules);
if($validator->passes())
{
$user = array(
'username'=> Input::get('username'),
'password' => Input::get('password'),
'active'=>1,
);
if(Auth::attempt($user))
{
if((Auth::user()->isBuyer()))
{
return Redirect::route('customer')->with(['success' => 'Welcome <strong style="color:black">'.Auth::user()->name .'</strong>']);
}
elseif((Auth::user()->isSeller()))
{
return Redirect::route('seller')->with(['success' => 'Welcome <strong style="color:black">'.Auth::user()->name .'</strong>']);
}
else
{
return Redirect::route('dashboard')->with(['success' => 'Welcome <strong style="color:black">'.Auth::user()->name.' </strong>']);
}
}
return Redirect::back()
->with(array(
'error' => 'Your email and password combination is invalid or Verify your email first'
));
}
return Redirect::back()
->withInput()
->withErrors($validator);
}
这是我登录的控制器功能
答案 0 :(得分:0)
有很多方法可以做到这一点。但下面是常见的,我通常会这样做。
1。)添加列&#34;尝试&#34;每次用户登录失败时,对用户表和递增。如果用户成功登录,请将列重置为0.
2。)创建会话&#34;尝试&#34;每次用户登录失败时都会增加。如果用户成功登录,则将会话重置为0.还可以阻止用户登录x分钟。
但我更喜欢选项1,因此即使使用不同的浏览器,用户也无法登录。