Laravel 访客中间件

Rag*_*gas 3 laravel-5 laravel-middleware laravel-5.8

我的网络应用程序中有一个页面应该阻止登录用户访问。类似于已登录的用户不应访问登录或注册页面。我通过在控制器构造函数中使用来宾中间件来完成此操作。

$this->middleware("guest")->only("page_action"); // like this
Run Code Online (Sandbox Code Playgroud)

在此设置中,如果登录用户尝试访问该页面,他们将被重定向到主页。但我需要显示 404 未找到页面而不是重定向。我怎样才能做到这一点?

简而言之,如何才能使页面仅可供访客访问,并使其对于登录用户来说看起来不存在?

sen*_*nty 6

访客逻辑在 inside 里面App\Http\Middleware\RedirectIfAuthenticated

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

return $next($request);
Run Code Online (Sandbox Code Playgroud)

否则,您需要创建一个新的中间件,如 @Atiqur 建议的。