Промежуточное программное обеспечение Laravel выдает ошибку, когда я использую Auth::check() в промежуточном программном обеспечении

Я использую ларавель 5.5.

Я использую !Auth::check() в промежуточном программном обеспечении, чтобы проверить, вошел ли пользователь в систему или нет, но он показывает ошибку, как показано ниже: at => /Http/Middleware/VerifyCsrfToken.php $response->headers->setCookie Пытается получить свойство не- объект Ошибка при попытке доступа к маршруту

Мое промежуточное программное обеспечение администратора:

public function handle($request, Closure $next)
{
    if (!Auth::check()) {
        return "Permission Denied.";
    }
    return $next($request);
}

Мой kernel.php

'admin' => [
       \App\Http\Middleware\Admin::class,
    ]

Мой файл маршрута:

Route::get( '/', function () {
 return view( 'welcome' );
} )->middleware(['admin']);

person Mahbubur Rahman    schedule 14.10.2017    source источник
comment
Привет, Махбубур в вашем маршруте замените «admin» на «auth: admin», надеюсь, это поможет   -  person Mario Nassef    schedule 20.02.2018


Ответы (1)


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

public function handle($request, Closure $next)
{
    if (!Auth::check()) {
        return response('Permission Denied.', 401);
    }
    return $next($request);
}
person Artak Dashyan    schedule 28.11.2017