Гостевое промежуточное ПО Laravel - PullRequest
0 голосов
/ 25 марта 2019

В моем веб-приложении есть страница, которую следует заблокировать для входа в систему.Аналогично тому, как страница входа или регистрации не должна быть доступна для уже вошедших в систему пользователей.Я сделал это с помощью гостевого промежуточного программного обеспечения в конструкторе контроллера.

$this->middleware("guest")->only("page_action"); // like this

В этой настройке, если вошедший в систему пользователь пытается посетить эту страницу, он перенаправляется на домашнюю страницу.Но мне нужно показать страницу 404 не найдена вместо перенаправления.Как я могу это сделать?

Короче говоря, как сделать страницу доступной только для гостя и сделать так, чтобы она не существовала для зарегистрированных пользователей?

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Гостевая логика находится внутри App\Http\Middleware\RedirectIfAuthenticated.

if (Auth::guard($guard)->check()) {
    abort(404)
}

return $next($request);

В противном случае вам необходимо создать новое промежуточное программное обеспечение, как предложил @Atiqur.

1 голос
/ 25 марта 2019

В вашем методе просто проверьте, если пользователь вошел в систему, если затем прервать до 404, как показано ниже ...

if(\Illuminate\Support\Facades\Auth::check()) {
    return abort(404);
}

#Rest of the code is for guest user.....
#
...