2016-03-09 8 views
1

У меня проблема с маршрутизации laravel.Laravel 5.2 Auth routing

Я хочу иметь маршруты, как это:

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

После Войти я хочу пользователь будет перенаправлен на/приборную панель, и если идентифицированный пользователь переходит к/или любому другому незащищенному маршруту, я также хочу, чтобы перенаправить его to/dashboard.

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.

Путь Настройка

Когда пользователь успешно прошел проверку подлинности, они будут перенаправлены на/URI. Вы можете настроить расположение перенаправления после аутентификации путем определения свойства RedirectTo на AuthController:

protected $redirectTo = '/home'; 

Когда пользователь не был успешно идентифицирован, он будет перенаправлен обратно к форме входа в место автоматически.

Подробнее см. Здесь. https://laravel.com/docs/5.2/authentication#included-routing

1

вам необходимо установить ::

защищенный $ RedirectTo = '/ дом'

в AuthController, которая переопределяет переменную $ RedirectTo в Trait используется AuthController.

u также может изменить redirectAfterLogout url таким же образом.

!! Счастливое кодирование.

+0

Я добавил $ redirectTo = "/ dashboard", и пользователь сразу перенаправляется в/панель, после того как вы вошли в систему, и это нормально. То, что я прошу здесь, - это то, что пользователь, когда он войдет в систему, отправляется на какой-то публичный маршрут, я хочу перенаправить его в/dashboard. – John

+0

вы можете создать промежуточное программное обеспечение для того же логика, как если бы Auth :: check() перенаправлялся на панель управления. И эти связующее ПО на маршруты .. – dpak005

Смежные вопросы