Это моя функция контроллера входа в систему
use ThrottlesLogins;
protected $maxLoginAttempts = 3;
protected $lockoutTime = 300;
public function login(Request $request)
{
if ($this->hasTooManyLoginAttempts($request))
{
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
$validator = Validator::make(Input::all() , ['credential' => 'required|min:2|max:255', 'password' => 'required|string|min:8', ]);
$cred = $request->credential;
$pw = $request->password;
$remember = (Input::has('remember')) ? true : false;
if (filter_var($cred, FILTER_VALIDATE_EMAIL))
{
if (Auth::guard('customers')->attempt(['email' => $cred, 'password' => $pw, 'verified' => 1], $remember))
{
return redirect()->route('front');
}
else
{
return redirect()->route('customer-login-page')->with('error', 'Your credentials do not match');
}
}
else
{
if (Auth::guard('customers')->attempt(['contact' => $cred, 'password' => $pw], $remember))
{
return redirect()->intended(route('front'));
}
else
{
return redirect()->route('customer-login-page')->with('error', 'Your credentials do not match');
}
}
}
protected function hasTooManyLoginAttempts(Request $request)
{
return $this->limiter()->tooManyAttempts(
$this->throttleKey($request), $this->maxLoginAttempts, $this->lockoutTime
);
}
Это не работает. Я пробовал неудачные попытки входа более 3 раз, но все еще не удушал. А ТАКЖЕ Даже когда я отправляю правильные учетные данные, вход и перенаправление работают, но когда я проверяю запрос, я получаю
302 FOUND error
во вкладке сети






Вам необходимо сообщить трейту, что вы пытаетесь войти в систему, позвонив в $this->incrementLoginAttempts($request) (посмотреть код). Вы можете сделать этот вызов сразу после существующей проверки газа:
if ($this->hasTooManyLoginAttempts($request))
{
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
$this->incrementLoginAttempts($request);
// other code
Это интересно. sendLockoutResponse($request), кажется, бросает ValidationException, что означает, что return вообще ничего не делает. Может, вы попробуете вместо этого с try { } catch (ValidationException $e) { }? Хотя это не объясняет, как работает исходный код в трейте Аутентифицирует пользователей.
Хорошо, после некоторого размышления над этим кажется, что ValidationException улавливается внутренним обработчиком исключений и соответственно преобразуется в Response. return перед исключением кажется безрезультатным. Поэтому я могу предположить, что вы внесли некоторые изменения в свой обработчик исключений или что-то еще не работает. Пожалуйста, посмотрите свои журналы.
Пытаться
use Illuminate\Foundation\Auth\ThrottlesLogins;
Создан из
use ThrottlesLogins;
Спасибо. Я пробовал это. Оно работает. Но после попыток я получаю пустую страницу, а не сообщение