如果尝试进入登录屏幕,Laravel 5将重定向到主页

imp*_*335 7 php routing laravel laravel-5

我有一个登录屏幕,它是基本网址(www.mysite.com/).

当用户登录时,他们被重定向到他们的主页(/ home).

但如果他们转到root用户,仍然可以返回登录页面.

我如何登录如此登录用户如果已登录则会被发送回主页(如果他们不是,他们当然会看到登录页面)?

imp*_*335 8

我在我的路由器中这样做了,虽然我不确定它是否是最好的解决方案:

Route::get('/', function () {
    if(Auth::check()) {
        return redirect('/dashboard');
    } else {
        return view('auth.login');
    }
});
Run Code Online (Sandbox Code Playgroud)


小智 5

您应该为此使用中间件。

Laravel 5已经开箱即可使用“来宾”中间件,因此只需执行以下操作就足够了:

Route::get('/', ['middleware' =>'guest', function(){
  return view('auth.login');
}]);
Run Code Online (Sandbox Code Playgroud)

然后,在中间件文件中,App\Http\Middleware\RedirectIfAuthenticated您可以指定用户重定向到的位置。

默认值为/home


Ami*_*Bar 2

当用户成功通过身份验证后,他们将被重定向到 /home URI,您需要注册一个路由来处理该 URI。您可以通过在 AuthController 上定义 redirectPath 属性来自定义身份验证后重定向位置:

在你的AuthController中更改redirectPath属性

protected $redirectPath = '/dashboard';
Run Code Online (Sandbox Code Playgroud)

http://laravel.com/docs/5.1/authentication#Authenticating