Вы должны использовать промежуточное программное обеспечение для этого. Чтобы получить информацию о промежуточном программном обеспечении, проверьте здесь laravel.com/docs/master/middleware
Давайте посмотрим, как вы можете использовать для этой цели промежуточное программное обеспечение авторизации Laravel по умолчанию:
Прежде всего избавьтесь от AdminBaseController и используйте только AdminController
Затем вы должны убедиться, что промежуточное ПО аутентификации включено в файле app \ Http \ Kernel.php
У вас должна быть строка:
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
Это означает, что промежуточное ПО активно и доступно для ваших маршрутов.
Теперь давайте перейдем к классу промежуточного программного обеспечения в app \ Http \ Middleware \ Authenticate.php, чтобы указать поведение промежуточного программного обеспечения:
этот метод будет запущен перед вашим конструктором контроллера
public function handle($request, Closure $next)
{
//check here if the user is authenticated
if ( ! $this->auth->user() )
{
// here you should redirect to login
}
return $next($request);
}
Теперь остается только решить, для каких маршрутов следует применять промежуточное программное обеспечение. Предположим, у вас есть два маршрута, которые вы хотите сделать доступными только для аутентифицированных пользователей, вам следует указать, чтобы использовать промежуточное ПО для этих двух маршрутов следующим образом:
Route::group( ['middleware' => 'auth' ], function()
{
Route::get('admin/home', 'AdminController@index');
});