Laravel Аутентификация пользователя с условиями - PullRequest
0 голосов
/ 24 августа 2018

У меня вопрос к Аутентификация пользователя с условиями часть в документации Laravel.

В какой контроллер и метод я должен вставить это условие, чтобы оно работало в приложении.Я не совсем понял это.Это конструктор app/Http/Controllers/Auth/LoginController?

if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1]))
{
    // The user is active, not suspended, and exists.
}

Спасибо

1 Ответ

0 голосов
/ 24 августа 2018

Зависит от того, какую версию вы используете.Вы связались с документом 5.0, поэтому я не уверен, используете ли вы его на самом деле.

В последних версиях вы можете либо переопределить весь метод LoginController :: login, либо перейти к следующему:Метод LoginController :: tryLogin.Оба они на самом деле определены в признаке AuthenticateUsers.


Я склонен обращаться с этим по-разному.Если пользователь неактивен или приостановлен, я хотел бы показать ему другое сообщение, чем просто общий неудачный вход в систему.Я бы предпочел использовать промежуточное ПО для проверки их статуса и перенаправления с сообщением об их учетной записи.

class CheckActiveMiddleware 
{
    public function handle($request, Closure $next)
    {
        // Check that the user is still active
        if($request->user()->active)
        {
            return $next($request);
        }
        return redirect('/login')->withErrors('Your account has been deactivated.');
    }
}

Это также позволяет вам деактивировать пользователей, которые все еще вошли в систему.Пользователь, который выбрал «Запомнить меня», все еще сможет использовать приложение до тех пор, пока он не выйдет из системы, поскольку ваша проверка только при входе в систему.

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