У меня проблема с моим специальным промежуточным программным обеспечением. Это не работает. Я зарегистрировал его в Kernel.php, только в $ routeMiddleware. Вот мой код:Laravel 5 Middleware Не работает
/**
* The application's route middleware.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'test' => \App\Http\Middleware\TestMiddleware::class
];
}
Вот мой контроллер Код:
/**
* Middleware Activated
*/
public function __constructor()
{
$this->middleware('test');
}
и вот мой пользовательский код промежуточного слоя:
protected $auth;
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!$this->auth->check())
{
return redirect('/');
}
return $next($request);
}
Когда я выйти из системы и введите URL
профиль/21
он показывает мне профиль пользователя с идентификатором 21. Я хочу предотвратить это с помощью промежуточного программного обеспечения, но он не будет работать для меня.
У кого-нибудь есть идея, как это сделать или где ошибка?
мой файл выглядит следующим образом: /** * маршрута промежуточного приложения. * * @var массив */ защищен $ routeMiddleware = [ 'Auth' => \ App \ Http \ Middleware \ Authenticate :: класс, 'auth.basic' => \ Illuminate \ Auth \ Middleware \ AuthenticateWithBasicAuth :: class, 'guest' => \ App \ Http \ Middleware \ RedirectIfAuthenticated :: class, 'test' => \ App \ Http \ Middleware \ TestMiddleware :: класс ]; –