Configuración de la autenticación de usuario en Laravel usando Confide

La autenticación del usuario es parte de casi todas las aplicaciones web. Aunque es común, una mirada más profunda muestra que no es tan simple como parece. Recuerde que la validación, la recuperación de la contraseña y la confirmación por correo electrónico son vitales para cualquier formulario de autenticación decente.

Confide es una solución de autenticación para Laravel diseñada para reducir el trabajo repetitivo que implica la administración de usuarios. Es un enfoque DRY en funciones como creación de cuenta, inicio de sesión, cierre de sesión, confirmación por correo electrónico, restablecimiento de contraseña, etc..

Desde las primeras versiones, Confide siempre tuvo una buena adopción entre los desarrolladores y una amplia presencia en los proyectos de Laravel. Con una actualización reciente, el paquete ahora es compatible con Laravel 4.2, que es la última versión estable de Laravel en el momento de escribir este artículo..

Qué vamos a hacer

En este tutorial, comenzaremos desde el principio creando nuestra aplicación Laravel usando Composer y luego:

  • crear un formulario de registro con un conjunto completo de reglas de validación
  • un formulario de inicio de sesión con la opción "olvidé mi contraseña" que enviará un enlace para que el usuario vuelva a definir su contraseña
  • use los filtros Laravel para permitir que solo los usuarios registrados puedan acceder a una ruta específica.

Creando la Aplicación

En primer lugar, vamos a crear la aplicación usando Composer..

$ composer create-project laravel / laravel myapp

Instalación de Confide

Ahora, dentro del directorio del proyecto, edita el exigir clave de compositor.json presentar e incluir la entrada de confianza:

"require": "laravel / framework": "~ 4.2", "zizaco / confide": "~4.0@dev",

Luego ejecute la actualización del compositor en nuestra nueva dependencia:

$ actualización del compositor zizaco / confide

En config / app.php de nuestro proyecto, añadir 'Zizaco \ Confide \ ServiceProvider' hasta el final de la matriz de proveedores:

... 'proveedores' => array ('Illuminate \ Foundation \ Providers \ ArtisanServiceProvider', 'Illuminate \ Auth \ AuthServiceProvider', ... 'Zizaco \ Confide \ ServiceProvider',), ... 

También agrega 'Confide' => 'Zizaco \ Confide \ Facade' a la matriz de alias en el mismo archivo:

... 'aliases' => array ('App' => 'Illuminate \ Support \ Facades \ App', 'Artisan' => 'Illuminate \ Support \ Facades \ Artisan', ... 'Confide' => 'Zizaco \ Confide \ Facade ',),

Selecciona el dirección y nombre en config / mail.php. Esta configuración se utilizará para enviar correos electrónicos de confirmación de cuenta y restablecimiento de contraseña a los usuarios. Para este tutorial, puedes usar tu servidor SMTP personal para que las cosas funcionen

Por ejemplo, si usas Gmail puedes hacer lo siguiente:

'driver' => 'smtp', 'host' => 'smtp.gmail.com', // Para propósitos de prueba 'from' => array ('address' => '[email protected]', 'name' => 'MyApp'), ... 'username' => '[email protected]', 'password' => ',... 

Modelo de usuario

Ahora genere las migraciones de Confide ejecutando:

$ php artisan confide: migración $ php artesano migrate

Esto configurará una tabla que contiene correo electrónico, contraseña, recordatorio, código de confirmación y confirmado columnas Estos son los campos predeterminados necesarios para Confide. Siéntase libre de agregar más columnas a la tabla más adelante.

Reemplace todo el código en app / models / User.php a:

 

Zizaco \ Confide \ ConfideUser El rasgo se hará cargo de la mayoría de los comportamientos del modelo de usuario..

Controlador de Usuarios y Rutas

Confide contiene una herramienta generadora que creará un controlador y escribirá las rutas para nosotros. Para crear el Controlador de usuarios y para registrar las rutas vamos a ejecutar estos comandos:

$ php artisan confide: controlador $ php artisan confide: rutas

Como se han creado nuevas clases, necesitaremos actualizar los archivos de carga automática..

$ compositor dump-autoload

Listo para usar

¡Hemos terminado! Nuestra aplicación ahora tiene todas las características que ofrece Confide. Ejecuta el servidor de aplicaciones llamando servicio php artesanal en la terminal.

El seguimiento OBTENER Las rutas están disponibles en nuestra aplicación:

http: // localhost: 8000 / users / create http: // localhost: 8000 / users / login http: // localhost: 8000 / users / forgot_password

Para acceder al usuario actual podemos llamar Confide :: usuario (). Por lo tanto, para mostrar el nombre del usuario actual necesitamos reemplazar el contenido de app / views / hello.php con:

    Autenticación del usuario con Confide   

Hola confiar

Hola

Ahora sigue adelante y accede http: // localhost: 8000 / users / create Para crear nuestro primer usuario. Recibirá un correo electrónico de confirmación justo después de enviar el formulario. (si has llenado el config / mail.php con los valores correctos). Inicia sesión y verás el nombre de usuario en la pantalla..

Mejora de visuales

Las formas predeterminadas de Confide son compatibles con Bootstrap. Así que no te dejes intimidar por la "fealdad" de ellos en una página sin ningún CSS. Editar el controlador generado por Confide (UserController.php) y actualice el método de creación para:

 

De esta forma nuestra aplicación hará que la vista. usuarios.signup. Vamos a crear esta vista en aplicación / vistas / usuarios como signup.blade.php Con el siguiente contenido:

    Autenticación del usuario con Confide  Importa bootstrap de twitter y configura algunos estilos      

Regístrate

Representa el formulario de registro de Confide Confide :: makeSignupForm () -> render ();

Después de esto, tendremos un resultado mucho más elegante en el formulario de creación de usuario en http: // localhost: 8000 / usuario / crear:

No tiene que usar los formularios generados por Confide. Puede crear su propia vista que envía datos a ENVIAR rutas.

Restricción de acceso

Abierto app / route.php y agregue el siguiente código al final del archivo:

// Dashboard route Route :: get ('userpanel / dashboard', function () return View :: make ('userpanel.dashboard');); // Aplica el filtro de autenticación a las rutas dentro de admin / Route :: when ('userpanel / *', 'auth');

Crear el archivo de vista app / views / userpanel / dashboard.blade.php:

    Autenticación del usuario con Confide  Importa bootstrap de twitter y configura algunos estilos      

Confide :: usuario () -> nombre de usuario

correo electrónico: Confide :: user () -> email

Ahora que hemos aplicado el filtro a todas las rutas dentro de panel de usuario. Necesitaremos un pequeño ajuste para asegurarnos de que autenticación El filtro redirigirá al usuario a la URL de inicio de sesión correcta. Editar app / filters.php en linea 46 para reemplazar return Redirect :: guest ('login'); con:

... volver Redirect :: guest ('usuarios / inicio de sesión'); ... 

Hecho eso, el panel de usuario / panel de control La página solo estará disponible para los usuarios que hayan iniciado sesión en la aplicación. El filtro redirigirá a los usuarios invitados al formulario de inicio de sesión y luego volverá al panel una vez que hayan iniciado sesión.

Conclusión

Es posible observar que pudimos configurar rápidamente la autenticación de usuario para nuestra aplicación. Además, el controlador generado, la migración y las rutas se pueden editar para personalizar cómo manejaremos cada detalle.

No nos hemos centrado mucho en el ConfideUser rasgo, pero creo que es importante aclarar las cosas. Una vez que tu modelo usa el ConfideUser rasgo, no necesita preocuparse por implementar la lógica básica. Al mismo tiempo, todavía puede sobrescribir los métodos y personalizarlos, si es necesario.

Podemos decir que Confide es un enfoque SECO para la autenticación de usuarios. Ofrece la comodidad de tener la funcionalidad lista para usar y, a la vez, permite una alta personalización..

Echa un vistazo a Confiar en GitHub. Si tuvo algún problema al seguir este tutorial, no dude en contactarme.