У пользователей есть поле в базе данных под названием verified, которое является логическим. По умолчанию установлено значение 0, а затем устанавливается на «1», когда пользователь следует по ссылке подтверждения, отправленной им по электронной почте при регистрации.Только зарегистрированные пользователи, которые были проверены в Laravel 5.2
Мне нужны пользователи, у которых при попытке входа в систему было выбрано это значение boolean, равное 0, и сообщение на экран, объясняющее, почему они были отклонены. Пользователи, у которых установлен флажок «1», будут регистрироваться, как обычно.
Я написал эту «» аутентифицированного метод в AuthController.php, этот метод используется на «» handleUserWasAuthenticated методом в AuthenticatesUsers.php
public function authenticated($request, $user)
{
if($user->verified==false)
{
flash('you are not verified');
return redirect('/login');
}
return redirect('/');
}
Здесь «handleUserWasAuthenticated» метод, который использует его.
protected function handleUserWasAuthenticated(Request $request, $throttles)
{
if ($throttles) {
$this->clearLoginAttempts($request);
}
if (method_exists($this, 'authenticated')) {
return $this->authenticated($request, Auth::guard($this->getGuard())->user());
}
return redirect()->intended($this->redirectPath());
}
Это в настоящее время не работает. Проверенные пользователи регистрируются и отправляются на домашнюю страницу. Тем не менее, не проверенные пользователи также регистрируются, но возвращаются на другую страницу.
Я забыл упомянуть, что не написал второй метод выше, он был сгенерирован, как и другие методы в «AuthenticatesUser.php», когда я использовал команду make: auth.
Попробуйте использовать после проверки Крючок - https://laravel.com/docs/5.2/validation. Если пользователь зарегистрирован, но не проверен. Сначала вы проверяете, зарегистрирован ли он (если он не выкинул его сразу), а затем проверьте, можно ли подтвердить сообщение об ошибке или остановить вход в систему. – Bugfixer