Laravel 来宾中间件
Laravel guest middleware
我的网络应用程序中有一个页面应该阻止登录用户访问。类似于已经登录的用户不应访问登录或注册页面的方式。我通过在控制器构造函数中使用来宾中间件来完成此操作。
$this->middleware("guest")->only("page_action"); // like this
在此设置中,如果登录用户尝试访问该页面,他们将被重定向到主页。但我需要显示 404 not found 页面而不是重定向。我该怎么做?
简而言之,我怎样才能让一个页面只供来宾访问,并使它看起来对登录用户来说不存在?
在您的方法中,只需检查用户是否登录,如果登录,则中止到 404,如下所示...
if(\Illuminate\Support\Facades\Auth::check()) {
return abort(404);
}
#Rest of the code is for guest user.....
#
来宾逻辑在里面App\Http\Middleware\RedirectIfAuthenticated
。
if (Auth::guard($guard)->check()) {
abort(404)
}
return $next($request);
否则,您需要像@Atiqur 建议的那样创建一个新的中间件。
我的网络应用程序中有一个页面应该阻止登录用户访问。类似于已经登录的用户不应访问登录或注册页面的方式。我通过在控制器构造函数中使用来宾中间件来完成此操作。
$this->middleware("guest")->only("page_action"); // like this
在此设置中,如果登录用户尝试访问该页面,他们将被重定向到主页。但我需要显示 404 not found 页面而不是重定向。我该怎么做?
简而言之,我怎样才能让一个页面只供来宾访问,并使它看起来对登录用户来说不存在?
在您的方法中,只需检查用户是否登录,如果登录,则中止到 404,如下所示...
if(\Illuminate\Support\Facades\Auth::check()) {
return abort(404);
}
#Rest of the code is for guest user.....
#
来宾逻辑在里面App\Http\Middleware\RedirectIfAuthenticated
。
if (Auth::guard($guard)->check()) {
abort(404)
}
return $next($request);
否则,您需要像@Atiqur 建议的那样创建一个新的中间件。