如何限制laravel 4中用户的登录尝试

时间:2016-11-01 18:41:20

标签: laravel xcode4.2

我正在尝试在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);

}

这是我登录的控制器功能

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。但下面是常见的,我通常会这样做。

1。)添加列&#34;尝试&#34;每次用户登录失败时,对用户表和递增。如果用户成功登录,请将列重置为0.

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

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