Laravel 5.2 Auth маршрутизация

Имам проблем с маршрутизирането на laravel.

Искам да имам маршрути като този:

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

След влизане искам потребителят да бъде пренасочен към /dashboard и ако удостовереният потребител отиде до / или друг незащитен маршрут, аз също искам да го пренасоча към /dashboard.

Моите маршрути.php.

`Route::get('/', 'HomeController@index');
 Route::group(['middleware' => 'web'], function () {


    Route::auth();

    Route::get(‘/dashboard’, ‘DashboardController@index');
    Route::get('/logout', 'Auth\AuthController@logout');


});`

Това работи, но ако удостоверен потребител отиде до / или друг незащитен маршрут, бих искал да го пренасоча към /dashboard. Как мога да накарам това да работи?


person John    schedule 09.03.2016    source източник
comment
Във вашия HomeController@index метод направете проверка и пренасочете потребителя за удостоверяване към таблото за управление. Auth::check() ? return redirect()->url('/dashboard') : '';   -  person Jilson Thomas    schedule 10.03.2016
comment
Благодаря, вече работи.   -  person John    schedule 10.03.2016
comment
Ще го публикувам като отговор   -  person Jilson Thomas    schedule 10.03.2016


Отговори (3)


Взети от документи на Laravel.

Персонализиране на пътя

Когато даден потребител бъде удостоверен успешно, той ще бъде пренасочен към / URI. Можете да персонализирате местоположението за пренасочване след удостоверяване, като дефинирате свойството redirectTo в AuthController:

protected $redirectTo = '/home';

Когато даден потребител не е удостоверен успешно, той автоматично ще бъде пренасочен обратно към местоположението на формата за вход.

Вижте повече тук. https://laravel.com/docs/5.2/authentication#included-routing

person Flávio Rodrigues    schedule 09.03.2016

трябва да зададете ::

защитено $redirectTo = '/home'

в AuthController, което ще замени променливата $redirectTo в Trait, използвана от AuthController.

можете също да промените url за пренасочване след изход по същия начин.

!!Приятно кодиране.

person dpak005    schedule 10.03.2016
comment
Добавих $redirectTo = /dashboard и потребителят се пренасочва към /dashboard веднага след влизане, което е добре. Това, което питам тук, е, че ако потребителят, след като влезе в системата, премине към някакъв обществен маршрут, искам да го пренасоча към /dashboard. - person John; 10.03.2016
comment
можете да създадете междинен софтуер за същото с логика, сякаш Auth::check() пренасочва към таблото за управление.. И този междинен софтуер към маршрутите.. - person dpak005; 11.03.2016

Във вашия HomeController@index метод направете проверка и пренасочете потребителя за удостоверяване към таблото за управление. Auth::check() ? return redirect()->url('/dashboard') : '';

person Jilson Thomas    schedule 09.03.2016
comment
Ако / е единственият незащитен маршрут, обработването на това в HomeController@index би било добре, но няма индикация, че това е така, така че вашето предложение трябва да се обработва вместо това в междинен софтуер. - person Bogdan; 10.03.2016
comment
@Bogdan Да, вярно е, искам да мога да пренасочвам потребителя от всеки маршрут. Как бих се справила с това в междинния софтуер? - person John; 10.03.2016