Laravel аутентификация пользователя с условиями

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

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

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

Спасибо

Примените группу маршрутов к своим маршрутам, как этот пример. Тогда у вас могут быть общедоступные маршруты за пределами группы, если вам это понадобится позже.

ourmandave 24.08.2018 15:07

Контроллер входа в Laravel использует трейт AuthenticatesUsers, в котором вы можете найти его реализацию. Взгляните на этого поставщика / laravel / framework / src / Illuminate / Foundation / Auth / Auth‌ enticatesUsers.php

faizan.sh 24.08.2018 15:44
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
81
1

Ответы 1

Это зависит от того, какую версию вы используете. Вы связались с документом 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.');
    }
}

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

Другие вопросы по теме