1

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

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

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

简而言之,我怎样才能让一个页面仅供访客访问,并让它看起来对登录用户不存在?

4

2 回答 2

3

来宾逻辑在 inside inside App\Http\Middleware\RedirectIfAuthenticated

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

return $next($request);

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

于 2019-03-25T11:15:23.833 回答
1

在您的方法中,只需检查用户是否已登录,如果然后中止到 404,如下所示...

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

#Rest of the code is for guest user.....
#
于 2019-03-25T09:01:32.287 回答