2016-03-09 227 views
1

我遇到了laravel路由問題。Laravel 5.2身份驗證路由

我想有這樣的路線:

/ - home page for unauthenticated users 
/login - login page 
/register - register page 
/dashboard - home page for authenticated users 

登錄我希望用戶被重定向到/儀表板,以及在經驗證的用戶去/或任何其他未受保護的途徑,我也想重定向在他之後到/儀表板。

My routes.php。

`Route::get('/', '[email protected]'); 
Route::group(['middleware' => 'web'], function() {

 
    Route::auth();
 
    Route::get(‘/dashboard’, ‘[email protected]'); 
    Route::get('/logout', 'Auth\[email protected]');

 
});` 

這工作,但是如果身份驗證的用戶去/或任何其他未受保護的途徑,我想他重定向到/儀表板。我怎樣才能做這項工作?

+0

在您的'HomeController @ index'方法中,執行檢查並將Auth用戶重定向到儀表板。 'Auth :: check()? return redirect() - > url('/ dashboard'):''; ' –

+0

謝謝,它現在有效。 – John

+0

我將它作爲回答發佈 –

回答

0

在您的[email protected]方法中,執行檢查並將Auth用戶重定向到儀表板。 Auth::check() ? return redirect()->url('/dashboard') : '';

+0

如果'/'是唯一不受保護的路由,可以在'HomeController @ index'中處理這個問題,但沒有任何跡象表明這種情況,所以您的建議應該在中間件中處理。 – Bogdan

+0

@Bogdan是的,這是真的,我想能夠重定向用戶從每一個路線。我如何處理這個中間件? – John

1

來自Laravel docs。

路徑定製

當用戶被成功地認證,它們將被重定向到/ URI。您可以通過在AuthController定義redirectTo屬性自定義驗證後重定向位置:

protected $redirectTo = '/home'; 

當用戶沒有認證成功,他們將被自動重定向到登錄表單的位置。

查看更多這裏。 https://laravel.com/docs/5.2/authentication#included-routing

1

你需要設置::

保護$ redirectTo = '/家'

在AuthController這將覆蓋在由AuthController使用的性狀$ redirectTo變量

你也可以用相同的方式改變redirectAfterLogout url。

!!快樂編碼。

+0

我添加了$ redirectTo =「/ dashboard」,用戶在登錄後立即重定向到/儀表板,這很好。我在這裏問的是,如果用戶登錄後進入某個公共路由,我想將他重定向到/儀表板。 – John

+0

你可以創建一個與邏輯相同的中間件,就像Auth :: check()重定向到儀表板一樣.. 而那些中間件就是這些路由.. – dpak005