Usando la Fachada de Autenticación de Laravel 5

La autenticación forma parte de casi todas las aplicaciones web con las que trabaja. Es realmente aburrido seguir repitiendo todo el código en cada proyecto. Bueno, la buena noticia es que Laravel 5 te libra de este aburrimiento al proporcionar una fachada de autenticación lista para usar.. 

Todo lo que necesita hacer es configurar y personalizar el proveedor de servicios de autenticación a las necesidades de su proyecto. En este consejo rápido, te mostraré exactamente cómo hacerlo..

Buscando un atajo?

Si desea una solución ya probada, probada y probada, pruebe Vanguard - Advanced PHP Login and User Management en Envato Market. Es una aplicación PHP, escrita en Laravel 5.2, que permite a los propietarios de sitios web agregar y habilitar rápidamente la autenticación, autorización y administración de usuarios en su sitio web.. 

Vanguard - Inicio de sesión PHP avanzado y administración de usuarios en Envato Market

Configuración del medio ambiente

Voy a asumir que está comenzando con una instalación nueva de Laravel 5, pero puede omitir cualquiera de estos pasos si ya los ha realizado. En primer lugar, va a establecer algunas variables de entorno en el .env archivo en la raíz de su proyecto. Básicamente, estos tienen que ver con la configuración de la base de datos..

APP_ENV = local APP_DEBUG = verdadero APP_KEY = 8wfDvMTvfXWHuYE483uXF11fvX8Qi8gC DB_HOST = localhost DB_DATABASE = laravel_5_authentication DB_USERNAME = raíz DB_PASSWORD = caso de la raíz de la computadora

Observe la APP_ENV,  DB_HOST,  DB_DATABASE,  DB_USERNAME, y  DB_PASSWORD variables los APP_ENV La variable le dice a Laravel en qué entorno deseamos ejecutar nuestra aplicación web. El resto de los nombres de variables de la base de datos son bastante obvios.. 

Esto es todo lo que necesita hacer para configurar la conexión de la base de datos. ¿Pero cómo hace uso Laravel de estas variables? Vamos a examinar el config / database.php expediente. Notarás el uso de la env () función. Por ejemplo, env ('DB_HOST', 'localhost'). Laravel 5 usa esta función para capturar variables de la $ _ENV y $ _SERVER matrices globales, que se rellenan automáticamente con las variables que define en el .env expediente.

Configuración de las migraciones

Ejecutar php artesano migrate: install --env = local en su terminal en la raíz de su proyecto para instalar las migraciones localmente. Observe también que hay dos migraciones ya definidas en el base de datos / migraciones carpeta. Usando estas migraciones, Laravel 5 crea un usuarios y un password_resets tabla, lo que permite que la autenticación por defecto boilerplate para trabajar. Voy a crear una tercera migración para modificar el usuarios Tabla solo para mostrarle cómo personalizar la configuración de autenticación predeterminada.

Ejecutar php artisan make: migración alter_users_table_remove_name_add_first_name_last_name En la terminal para crear una tercera migración..

dropColumn ('nombre'); $ table-> string ('first_name', 50) -> after ('id'); $ table-> string ('last_name', 50) -> after ('first_name'); );  / ** * Revertir las migraciones. * * @return void * / public function down () Schema :: table ('users', function ($ table) $ table-> dropColumn ('last_name'); $ table-> dropColumn ('first_name'); $ table-> string ('name') -> after ('id');); 

Como puede ver, ha eliminado el campo de nombre y ha agregado dos campos más para nombre de pila y apellido Con una longitud máxima de 50 caracteres. También ha agregado el código que revierte estos cambios en la base de datos.

Ejecutar php artesano migrar en la terminal Si las migraciones se ejecutaron correctamente, debería poder ver ambas tablas en su base de datos con los campos que definió.

Configurando el Servicio de Registro

Vas a configurar el servicio de registrador para agregar tu nueva definición usuarios campos de mesa. 

Edita el archivo app / Servicios / Registrar.php.

 'required | min: 3 | max: 50', 'last_name' => 'required | min: 3 | max: 50', 'email' => 'required | email | max: 255 | unique: users', 'password '=>' requerido | confirmado | min: 6 ',]);  / ** * Crear una nueva instancia de usuario después de un registro válido. * * @param array $ data * @return User * / public function create (array $ data) return User :: create (['first_name' => $ data ['first_name'], 'last_name' => $ data [ 'last_name'], 'email' => $ data ['email'], 'password' => bcrypt ($ data ['password']),]); 

los validador La función valida los datos transmitidos desde el formulario de registro del usuario. Has eliminado el predeterminado nombre campo y agregó el nombre de pila y apellido campos con una longitud mínima de tres caracteres y una longitud máxima de 50 caracteres para ambos. los crear función agrega el usuario registrado a la usuarios tabla en la base de datos, por lo que solo necesita incluir la nombre de pila y apellido campos para ello.

Actualizando el Modelo de Usuario

También deberá actualizar el modelo de usuario para incluir el nombre de pila y apellido campos. 

Edita el archivo app / User.php.

los $ rellenable array especifica qué campos del modelo están abiertos a modificación. Por lo general, no incluiría campos que se generen automáticamente en esta matriz o campos que no requieran la entrada de un usuario como el hash para un token Recordarme. Todo lo que has hecho es actualizar el $ rellenable matriz para permitir que el nombre de pila y apellido ser asignable en masa.

Actualizando la Vista

Por último, solo necesita actualizar las vistas frontales para incluir el nombre de pila y apellido campos. Primero, actualizarás el formulario de registro.. 

Edita el archivo recursos / vistas / auth / register.blade.php.

@extends ('app') @section ('contenido') 
Registro
@if (cuenta ($ errores)> 0)
Whoops! Hubo algunos problemas con su entrada.

    @foreach ($ errores-> todos () como $ error)
  • $ error
  • @endforeach
@terminara si
@endsection

Has añadido el nombre de pila y apellido Campos al formulario de inscripción. También necesita editar el diseño predeterminado de la aplicación en recursos / vistas / app.blade.php para mostrar el nombre de usuario registrado en el menú de navegación.

      Laravel 5: Usando La Fachada De Autentificación            
@yield ('contenido')

Asegurando tus Rutas

Para asegurar sus rutas y permitir que solo los usuarios registrados puedan acceder a ellas, necesita hacer uso del middleware de autenticación proporcionado por Laravel. El middleware de autenticación se puede encontrar en app \ Http \ Middleware \ Authenticate.php

Aquí hay algunos ejemplos de cómo usarlo para proteger sus rutas..

// cierre de ruta Route :: get ('', [' middleware '=>' auth ', function () // si el usuario no ha iniciado sesión // será redirigido a la página de inicio de sesión // y este código no se ejecutará]); // controlador action Route :: get ('', [' middleware '=>' auth ',' uses '=>'@']); // dentro de una clase de controlador YourController extiende Controller función pública __construct () $ this-> middleware (''); $ this-> middleware ('', [' only '=> ['']]); $ this-> middleware ('', [' excepto '=> ['']]); 

Modificación de las rutas de autenticación predeterminadas

Puedes ejecutar Ruta php artesanal: lista en el terminal para verificar las rutas predeterminadas que usa la fachada de autenticación. Puede acceder a estas rutas para probar su código de autenticación. Aquí hay algunos ejemplos de cómo modificar estas rutas..

Edita el archivo app / Http / route.php.

// Ejemplo 1 // inicio de sesión url http://www.example.com/account/login // logout url http://www.example.com/account/logout // registro url http: //www.example. com / account / register Route :: controllers (['account' => 'Auth \ AuthController', 'password' => 'Auth \ PasswordController',]); // Ejemplo 2 // inicio de sesión url http://www.example.com/login // logout url http://www.example.com/logout // registro url http://www.example.com/register Ruta :: controllers (["=> 'Auth \ AuthController', 'password' => 'Auth \ PasswordController',]); // Example 3 // redefine todas las rutas Route :: get ('example / register', 'Auth \ AuthController @ getRegister '); Route :: post (' example / register ',' Auth \ AuthController @ postRegister '); Route :: get (' example / login ',' Auth \ AuthController @ getLogin '); Route :: post ('example / login', 'Auth \ AuthController @ postLogin'); Route :: get ('example / logout', 'Auth \ AuthController @ getLogout'); Route :: get ('example / email', 'Auth \ PasswordController @ getEmail '); Route :: post (' example / email ',' Auth \ PasswordController @ postEmail '); Route :: get (' example / reset / code ',' Auth \ PasswordController @ getReset ') ; Route :: post ('example / reset', 'Auth \ PasswordController @ postReset');

Además, recuerde llamar a los URI dinámicamente en sus vistas y plantillas de correo electrónico utilizando los ayudantes de Laravel. Puedes ver cómo hacerlo en el repositorio de GitHub de este consejo rápido.

Pensamientos finales

La función de restablecimiento de contraseña envía el enlace de restablecimiento de contraseña al correo electrónico del usuario, así que asegúrese de tener configurada la configuración de correo en su proyecto Laravel. La plantilla de vista para el correo electrónico de restablecimiento de contraseña está en recursos / vistas / correos electrónicos / contraseña.blade.php. También puede configurar algunas otras opciones básicas en el config / auth.php expediente.

Espero que hayas encontrado este consejo rápido fácil de seguir. Hasta mi próxima pieza de Tuts +, feliz codificación.!

Por cierto, si necesita ayuda adicional para corregir errores o realizar personalizaciones con las que no se siente cómodo, póngase en contacto con uno de los proveedores de servicios de PHP en Envato Studio. Pueden ayudarlo con una amplia gama de problemas de manera rápida y confiable, de modo que con una pequeña inversión de dinero, puede ahorrar mucho tiempo.!

Proveedores de servicios PHP en Envato Studio