2015-05-19 117 views
2

我在这里亏本。更改后登录重定向路径

我已经设置了内置身份验证的默认安装laravel。我将home路线改为admin。我更新了RedirectIfAuthenticated.php这个变化。

基本上,我要的是为用户被重定向到指数(/)第一次登陆,

我已经冲刷谷歌和尝试添加protected $redirectTo = '/'protected $redirectPath = '/'app/Http/Controllers/Auth/AuthController.php和似乎没有任何改变重定向。

如果我将new RedirectResponse(url('/admin'));更改为new RedirectResponse(url('/'));RedirectIfAuthenticated.php然后我得到一个重定向循环。

+0

请参阅http://stackoverflow.com/questions/28702372/how-to-change-default-redirect-url-of-laravel-5-auth-filter –

+0

@KhanShahrukh这是如何改变重定向_to_登录页面。我想重定向用户_after_他们已登录到索引页面,而不是默认的“家”(我已重命名为管理员)页面。 – gin93r

+0

你对我的评论很生气,我问了,因为我觉得它 –

回答

3

答案如下。如果已经通过身份验证,用户将从登录屏幕重定向,并且目标位于中间件中。

例如,默认登录位置当前设置为/ home,但我们会更改它。

编辑位于app/Http/Middleware目录中的RedirectIfAuthenticated.php文件。将第38行更改为以下内容。

更改默认的位置 线#38记录应

return new RedirectResponse('/home'); 

//将其更改为

return new RedirectResponse('/admin/post'); 

...或者其他任何地方你想要的页面重定向到。

1

添加

protected $redirectPath = '/dashboard'; 

在控制器\验证\ AuthController

0

最初从this Laracasts post拍摄。您可以相应地编辑App\Http\Controllers\Auth\LoginController中的authenticated方法。

在我的情况:

public function authenticated() 
{ 
    $user = $this->getUser(); 

    if ($user && $user->isAdmin()) { 
     $this->redirectTo = route('admin.users.index'); 

     return null; 
    } 
} 

return null线是因为AuthenticateUsers特征实现了sendLoginResponse(Request $request)方法,并询问是否authenticate方法返回的东西:

return $this->authenticated($request, $this->guard()->user()) 
      ?: redirect()->intended($this->redirectPath()); 

或执行重定向。

你可以不返回任何东西,它会有同样的效果。