Iniciar sesión con nombre de usuario o correo con Laravel

En esta entrada, vamos a ver cómo configurar Laravel para que los usuarios puedan iniciar sesión tanto con el nombre de usuario (username) como con el email.

Vamos al archivo LoginController.php. En este archivo, vemos que se está utilizando un trait llamado AuthenticatesUsers. En este trait, hay una función llamada username() que lo que hace es devolver la cadena de texto ‘username’. Nosotros, vamos a sobreescribir este método para comprobar si llega un correo o un nombre de usuario y devolver ‘email’ si es un correo o ‘username’ si es un nombre de usuario.

Una vez tenemos esto, lo que tenemos que hacer es un cambio pequeño en la vista de login.blade.php. Tenemos que cambiar el campo de email por esto:

En la vista, estamos controlando si hay errores y comprobamos si es del ‘username’ o ‘email’. Si hay algún error de ‘username’ o ‘email’, mostrará el error y el contenido del campo enviado gracias al helper old().


Aloja tu proyecto en DigitalOcean: Obtén $100 de crédito gratis al registrarte a través de este enlace.

Si hay cualquier tipo de error en el post o te surge cualquier duda, no dudes en ponerlo en los comentarios o enviarme un correo desde la página de contacto.

? CONTACTAR

Deja una respuesta

  Acepto la política de privacidad