php laravel authentication laravel-5 laravel-5.2

php - Laravel 5.2 Auth no funciona



authentication laravel-5 (1)

Como ustedes saben, Laravel 5.2 fue lanzado hace unos días. Estoy probando esta nueva versión. Hice un nuevo proyecto usando el siguiente comando en CLI:

laravel new testapp

De acuerdo con la documentación de Autenticación de inicio rápido , seguí el siguiente comando para andamiar rutas y vistas de autenticación:

php artisan make:auth

Funcionó bien El registro está funcionando bien. Pero estoy enfrentando un problema en Iniciar sesión. Después de iniciar sesión probé siguiendo en el archivo route.php:

Route::get(''/'', function () { dd( Auth::user()); return view(''welcome''); });

Auth::user() devuelve null y también Auth::check() y Auth::guest() no funcionan correctamente. He intentado lo mismo una y otra vez dos veces haciendo nuevos proyectos pero no pude obtener los resultados correctos.

A continuación se muestra la route.php completa.php

<?php /* |-------------------------------------------------------------------------- | Routes File |-------------------------------------------------------------------------- | | Here is where you will register all of the routes in an application. | It''s a breeze. Simply tell Laravel the URIs it should respond to | and give it the controller to call when that URI is requested. | */ Route::get(''/'', function () { dd( Auth::()); return view(''welcome''); }); /* |-------------------------------------------------------------------------- | Application Routes |-------------------------------------------------------------------------- | | This route group applies the "web" middleware group to every route | it contains. The "web" middleware group is defined in your HTTP | kernel and includes session state, CSRF protection, and more. | */ Route::group([''middleware'' => [''web'']], function () { // }); Route::group([''middleware'' => ''web''], function () { Route::auth(); Route::get(''/home'', ''HomeController@index''); });

¿Alguien puede ayudarme? o ¿Alguien está enfrentando el mismo problema? ¿Cómo puedo arreglarlo?


Laravel 5.2 presenta el concepto de grupos de middleware : puede especificar que uno o más middleware pertenecen a un grupo, y puede aplicar un grupo de middleware a una o más rutas

De forma predeterminada, Laravel 5.2 define un grupo llamado web , que se utiliza para agrupar la sesión de manejo de middleware y otras utilidades de http:

protected $middlewareGroups = [ ''web'' => [ /App/Http/Middleware/EncryptCookies::class, /Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse::class, /Illuminate/Session/Middleware/StartSession::class, /Illuminate/View/Middleware/ShareErrorsFromSession::class, /App/Http/Middleware/VerifyCsrfToken::class, ],

Por lo tanto, si desea administrar la sesión, debe usar este grupo de middleware para todas las rutas en las que desea usar la autenticación:

Route::group( [ ''middleware'' => [''web''] ], function () { //this route will use the middleware of the ''web'' group, so session and auth will work here Route::get(''/'', function () { dd( Auth::user() ); }); });

ACTUALIZACIÓN PARA LA VERSIÓN LARAVEL> = 5.2.27

A partir de la versión 5.2.27 de Laravel, todas las rutas definidas en routes.php utilizan por defecto el grupo de middleware web . Eso se logra en la app/Providers/RouteServiceProvider.php :

protected function mapWebRoutes(Router $router) { $router->group([ ''namespace'' => $this->namespace, ''middleware'' => ''web'' ], function ($router) { require app_path(''Http/routes.php''); }); }

De modo que ya no necesita agregar manualmente el grupo de middleware web a sus rutas.

De todos modos, si desea utilizar la autenticación predeterminada para una ruta, aún necesita vincular el middleware de auth a la ruta