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..
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 MarketVoy 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.
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ó.
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.
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 elnombre de pila
yapellido
ser asignable en masa.Actualizando la Vista
Por último, solo necesita actualizar las vistas frontales para incluir el
nombre de pila
yapellido
campos. Primero, actualizarás el formulario de registro..Edita el archivo
recursos / vistas / auth / register.blade.php
.@extends ('app') @section ('contenido')@endsectionRegistro@if (cuenta ($ errores)> 0)Whoops! Hubo algunos problemas con su entrada.@terminara si
@foreach ($ errores-> todos () como $ error)
- $ error
@endforeachHas añadido el
nombre de pila
yapellido
Campos al formulario de inscripción. También necesita editar el diseño predeterminado de la aplicación enrecursos / 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 elconfig / 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