Это решение, которое решит вашу проблему входа в систему, а также защитит ваши маршруты от прямых посещений неавторизованными пользователями.Если все, что вам нужно, это просто заблокировать фактический вход в систему, посмотрите другой ответ от @thefallen.Но если вам нужна дополнительная защита, кроме формы входа, вы можете обернуть ВСЕ ваши защищенные маршруты в промежуточное ПО, которое проверяет, равен ли «статус» пользователя 1 или 2. Если это не так, вы можете войти в нихиз.Это на самом деле не блокирует их вход в интерфейс, но гарантирует, что пользователь, который не одобрен, не может получить доступ к защищенным маршрутам и будет немедленно отключен, когда они это сделают.Предполагая, что вы перенаправляете своих пользователей на защищенный маршрут при входе в систему, промежуточное ПО будет эффективно выходить из системы сразу же по первому запросу.Промежуточное программное обеспечение может выглядеть следующим образом:
class AuthorizedUser
{
public function handle($request, Closure $next)
{
if(Auth::check() && !in_array(Auth::user()->status, [1, 2])) {
Auth::logout();
abort(404);
} else if(Auth::check()) {
return $next($request);
} else {
abort(404);
}
}
}
Тогда вы можете использовать массив $ middelwareGroups для переноса ваших защищенных маршрутов в это промежуточное программное обеспечение, что-то вроде этого в файле Http \ Kernel.php:
protected $middlewareGroups = [
'authorized' => [
\App\Http\Middleware\AuthorizedUser::class,
]
];
Вы можете изменить функциональность 404 на любое другое, например перенаправить обратно на страницу входа или на домашнюю страницу.