Laravel 5.2如果用户尝试使用错误的密码登录三次,请锁定帐户

时间:2016-10-20 02:04:05

标签: php login locking laravel-5.2

我是Laravel的新手。到目前为止,我使用了CodeIgniter。

我正在尝试实现一个系统,以便在用户尝试时锁定用户 用三次错误的密码登录。

用户使用电子邮件地址和密码登录。

这就是我所做的。

  1. 在/laravel/framework/src/illuminate/Foundation/Auth/AuthenticateUsers.php 如果用户试图,我可以编写代码将用户重定向到新页面 使用错误的密码登录三次。
  2. 代码:

    return redirect('/lockout')->with('warning', 'You are permanently log out. Please contact the System Administrator');
    

    接下来我想:

    1. 检索用户在登录表单中输入的电子邮件地址
    2. 在锁定的用户表中查找电子邮件地址。
    3. 勾选"已锁定"柱

      在控制器中。

    4. 我是否在正确的轨道上。 有什么建议吗?

      由于

1 个答案:

答案 0 :(得分:2)

如果用户尝试使用错误的密码登录,则锁定帐户不是一个好主意。任何人都可以使用他们的电子邮件地址和错误的密码锁定任何人的帐户。相反,您可以使用控制器中的throttlelogins traits限制登录尝试。

use AuthenticatesAndRegistersUsers, ThrottlesLogins ;

您可以使用GrahamCampbell Laravel throttleThrottleMiddleware并限制尝试次数和登录延迟时间。

use Illuminate\Support\Facades\Route;

Route::get('foo', ['middleware' => 'GrahamCampbell\Throttle\Http\Middleware\ThrottleMiddleware:50,30', function () {
      return 'Why herro there!';
}]);

这将为该网址设置一个中间件,限制为50次点击,保留时间为30分钟。