ограничить попытки входа в систему на laravel 5.7 - PullRequest
0 голосов
/ 05 октября 2018

У меня есть проект laravel 5.7, все работает нормально, но у меня есть пользовательский логин

public function loginPost(LoginRequest $request)
{
    if (Auth::attempt(array('user_name' => $request->user_name, 'password' => $request->user_pass)))
    {
        if(Auth::check())
            return redirect('/');
        else
            return back();
    }
    else
    {
        return "login faled call administrator";
    }
}

Как я могу позволить laravel принять попытку входа в систему 3 раза после этого перенаправления для страницы, ожидающей 2 или 3 минуты и т. Д.

Спасибо

1 Ответ

0 голосов
/ 05 октября 2018

вы можете сделать это двумя способами

  1. добавить lulvel bulit в throttle middleware в маршруте, например

    Route::post("/user/login","LoginController@login")->middleware("throttle:10,2");

будет отправлено 10 запросов за 2 минуты

2.Используется встроенный Trait ThrottlesLogins

первый из добавленных ThrottlesLogins trait вloginController и эта строка в методе входа в систему

if ($this->hasTooManyLoginAttempts($request)) {
    $this->fireLockoutEvent($request);
    return $this->sendLockoutResponse($request);
}

if(attempt()) {
    $this->clearLoginAttempts($request);
}else {
  $this->incrementLoginAttempts($request);
}

, если попытка удалась, добавьте эту строку в методе попытки

$this->clearLoginAttempts($request);

в противном случае войдите, затем добавьте эту строку в другом состоянии

$this->incrementLoginAttempts($request);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...