Функция переадресации Laravel 5

Я работаю над своим проектом Laravel и пытается переопределить postLogin () по умолчанию из AuthenticatesAndRegistersUsers. Поэтому я обновил свой AuthController и добавил это, чтобы переопределить встроенный логин,

public function postLogin(Request $request) { $this->validate($request, [ 'email' => 'required|email', 'password' => 'required', ]); $credentials = $request->only('email', 'password'); if ($this->auth->attempt($credentials, $request->has('remember'))) { /* Check if the user is Activated */ $userID = \Auth::user()->id; $user = new \App\User; $result = $user->isUserActivated($userID); if($result[0]->status == 1) { return redirect()->intended($this->redirectPath()); } else if($result[0]->status == 0) { Session::flash('alert-danger', 'Your account is not yet Activated.'); return Redirect::to('auth/login'); } } return redirect($this->loginPath()) ->withInput($request->only('email', 'remember')) ->withErrors([ 'email' => $this->getFailedLoginMessage(), ]); } 

Как видите, у меня есть $ result [0] -> статус, который сообщает, активирован ли пользователь, если нет, то я перенаправляю их обратно в auth / login. Я попытался var_dump ($ result [0] -> status); и он отлично работает, а также означает, что я переопределяю это, потому что он отображает его, но моя проблема вместо того, чтобы перенаправлять его на auth / login, он все еще проходит через дом и может войти в систему, даже если статус равен 0. Кажется, это мой переопределение не работает, но когда я var_dump $ result [0] -> status, он показывает. Я что-то пропустил?

Related of "Функция переадресации Laravel 5"

Я бы добавил следующее в функции postLogin() .

  $this->validate($request, [ 'email' => 'required|email', 'password' => 'required', ]); if ($this->auth->validate(['email' => $request->email, 'password' => $request->password, 'status' => 0])) { return redirect($this->loginPath()) ->withInput($request->only('email', 'remember')) ->withErrors('Your account is Inactive or not verified'); } 

status – это флаг в пользовательской таблице. 0 = Неактивный, 1 = активный. поэтому вся функция будет выглядеть следующим образом ..

 public function postLogin(Request $request) { $this->validate($request, [ 'email' => 'required|email', 'password' => 'required', ]); if ($this->auth->validate(['email' => $request->email, 'password' => $request->password, 'status' => 0])) { return redirect($this->loginPath()) ->withInput($request->only('email', 'remember')) ->withErrors('Your account is Inactive or not verified'); } $credentials = array('email' => $request->email, 'password' => $request->password); if ($this->auth->attempt($credentials, $request->has('remember'))){ return redirect()->intended($this->redirectPath()); } return redirect($this->loginPath()) ->withInput($request->only('email', 'remember')) ->withErrors([ 'email' => 'Incorrect email address or password', ]); } 

С

 if ($this->auth->attempt($credentials, $request->has('remember'))) 

вы регистрируете пользователя, так что если вы хотите его вывести из системы

 Auth::logout(); 

используйте этот фрагмент кода в инструкции else if