Reputation: 1565
I've just started a new Laravel 5.2 project and I have a problem with my routes. Web middleware is duplicated in route list and I have a lot of problems with sessions and csrf .
Here is my artisan route:list output:
+--------+----------+----------------------------------+----------------------------+-----------------------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+----------------------------------+----------------------------+-----------------------------------------------------------------+--------------+
| | GET|HEAD | / | | Closure | web,web |
| | GET|HEAD | cron/cursos | cron_courses | App\Http\Controllers\CourseController@call_store | web,web |
| | GET|HEAD | cursos | courses | App\Http\Controllers\CourseController@index | web,web |
| | GET|HEAD | cursos/buscar | courses_search | App\Http\Controllers\CourseController@search | web,web |
| | GET|HEAD | cursos/detalle/{id} | courses_detail | App\Http\Controllers\CourseController@detail | web,web |
| | GET|HEAD | cursos/solicitar/{id} | courses_apply | App\Http\Controllers\CourseController@apply | web,web,auth |
| | POST | guardar-datos | save_panel | App\Http\Controllers\UserController@panel_save | web,web,auth |
| | GET|HEAD | home | | App\Http\Controllers\HomeController@index | web,auth |
| | POST | login | | App\Http\Controllers\Auth\AuthController@login | web,guest |
| | GET|HEAD | login | | App\Http\Controllers\Auth\AuthController@showLoginForm | web,guest |
| | GET|HEAD | logout | | App\Http\Controllers\Auth\AuthController@logout | web |
| | GET|HEAD | panel | panel | App\Http\Controllers\UserController@panel | web,web,auth |
| | POST | password/email | | App\Http\Controllers\Auth\PasswordController@sendResetLinkEmail | web,guest |
| | POST | password/reset | | App\Http\Controllers\Auth\PasswordController@reset | web,guest |
| | GET|HEAD | password/reset/{token?} | | App\Http\Controllers\Auth\PasswordController@showResetForm | web,guest |
| | GET|HEAD | prueba | prueba | App\Http\Controllers\UserController@prueba | web,web |
| | POST | register | | App\Http\Controllers\Auth\AuthController@register | web,guest |
| | GET|HEAD | register | | App\Http\Controllers\Auth\AuthController@showRegistrationForm | web,guest |
| | GET|HEAD | sociallogin/callback/{provider?} | auth.getSocialAuthCallback | App\Http\Controllers\AuthSocialController@getSocialAuthCallback | web,web |
| | GET|HEAD | sociallogin/{provider?} | auth.getSocialAuth | App\Http\Controllers\AuthSocialController@getSocialAuth | web,web |
+--------+----------+----------------------------------+----------------------------+-----------------------------------------------------------------+--------------+
And here is my routes.php file:
Route::group(['middleware' => ['web']], function () {
Route::get('/', function () {
return view('welcome');
});
Route::get('/prueba', ['as' => 'prueba', 'uses' => 'UserController@prueba']);
# HOME
Route::get('/cursos', ['as' => 'courses', 'uses' => 'CourseController@index']);
Route::get('/cursos/buscar', ['as' => 'courses_search', 'uses' => 'CourseController@search']);
Route::get('/cursos/detalle/{id}', ['as' => 'courses_detail', 'uses' => 'CourseController@detail']);
# SOCIAL LOGIN
Route::get('/sociallogin/{provider?}',[
'uses' => 'AuthSocialController@getSocialAuth',
'as' => 'auth.getSocialAuth'
]);
Route::get('/sociallogin/callback/{provider?}',[
'uses' => 'AuthSocialController@getSocialAuthCallback',
'as' => 'auth.getSocialAuthCallback'
]);
});
Route::group(['prefix' => 'cron', 'middleware' => ['web']], function () {
Route::get('/cursos', ['as' => 'cron_courses', 'uses' => 'CourseController@call_store']);
});
Route::group(['middleware' => ['web', 'auth']], function () {
Route::get('/panel', ['as' => 'panel', 'uses' => 'UserController@panel']);
Route::post('/guardar-datos', ['as' => 'save_panel', 'uses' => 'UserController@panel_save']);
Route::get('/cursos/solicitar/{id}', ['as' => 'courses_apply', 'uses' => 'CourseController@apply']);
});
Route::auth();
Route::get('/home', 'HomeController@index');
I have another project with Laravel 5.2 and I everything is working fine.
Any idea how to solve it ?
Thanks!
Upvotes: 2
Views: 3505
Reputation: 2076
For some reason, you have an extra route group in your routes.php file. Remove that route group and it should be fixed.
Laravel uses the 'web' middleware by default behind the scenes in the latest versions of 5.2!
Upvotes: 0
Reputation: 163748
You should remove web
middleware from routes.php
, because since 5.2.27 Laravel applies web
middleware automatically to all routes in routes.php
.
Upvotes: 1