2016-11-01 66 views
0

我试图在laravel 4.2的一个项目上工作,但现在,我想限制用户的登录尝试次数。几乎所有的解决方案都是laravel 5并且不熟悉与5.所以任​​何人有一个想法,请我需要你的帮助。谢谢。如何限制laravel 4用户的登录尝试

$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

您可以为您的用户表添加一个'attempt'列。每增加一次,用户尝试登录并检查总尝试次数 – Wistar

回答

0

用于记录我的控制器功能有这么多的方式来做到这一点。但下面是常见的,我通常会这样做。

1.)将列“尝试”添加到用户表中并在用户每次登录失败时增加。如果用户成功登录,则将列重置为0.

2.)创建会话“尝试”并在用户每次登录失败时增加。如果用户成功登录,则将会话重置为0.您还可以阻止用户登录x分钟。

但我更喜欢选项1,所以即使用户使用不同的浏览器,用户也无法登录。

+0

非常感谢您 – Tongi

+0

您的欢迎,我希望它有帮助。 –

+0

我试过选项1,它完美的工作,谢谢 – Tongi