Laravel email подтверждение входа

Хорошо так что я пытаюсь todo, не позволяйте войти, если пользователь не подтвердил свой аккаунт по электронной почте. Мой код входа выглядит так:

    public function postLogin()
    {
        $credentials = [
            'confirmed' => 0,
            'email'     => Input::get('email'),
            'password'  => Input::get('password')
        ];
        $user = Sentinel::authenticate($credentials, false); // Login the user (if possible)

        if ($user and $user->banned) {
            Sentinel::logout();
            $user = null;
        }

        if ($user) {
            return $this->afterLoginActions();
        } else {
            $this->alertFlash(trans('app.access_denied'));
            return Redirect::to('auth/login');
        }
    }

Но я все еще могу войти без каких-либо ошибок. Есть помощь? Спасибо ребята!

Отредактировано: работает, но теперь я не получаю флэш-сообщение, если мои данные неисправны.
Код:

    public function postLogin()
    {
        $credentials = [
            'email'     => Input::get('email'),
            'password'  => Input::get('password'),
'confirmed' => 1
        ];

        $user = Sentinel::authenticate($credentials, false); // Login the user (if possible)
        if ($user and $user->banned) {
            Sentinel::logout();
            $this->alertFlash(trans('app.banned'));
            $user = null;
        }
       if ($user->confirmed==1) {
            return $this->afterLoginActions();
        }
        else if ($user->confirmed==0) {
            Sentinel::logout();
            $this->alertFlash(trans('app.not_active'));
            return Redirect::to('auth/login');
        } else {
            $this->alertFlash(trans('app.access_denied'));
            return Redirect::to('auth/login');
        }
    }

1 ответ

  1. У вас есть столбец в вашей таблице, хранящий информацию, если этот пользователь передал подтверждение по электронной почте? Если у вас есть один, это то, что я делаю это с типичным методом Laravel postLogin.

    public function postLogin(Request $request)
    {
        $credentialas = (your credential here);
        // only check credentials
        if ($this->guard()->once($credentials)) {
            $currentStatus = $this->guard()->user()->status;
            if (intval($currentStatus) === (NOT_CONFIRMED)) {
                $this->guard()->logout();
                return $this->sendSuspendedResponse($request);
            } else {
                $this->guard()->login($this->guard()->user());
                return $this->sendLoginResponse($request);
            }
        }
    }