Inicio > Desarrollo Web > Tutoriales de Laravel > Crea una página de restablecimiento de contraseña en Laravel 11

Crea una página de restablecimiento de contraseña en Laravel 11

Diego Cortés
Diego Cortés
January 20, 2025
Crea una página de restablecimiento de contraseña en Laravel 11

En el desarrollo web, la gestión de contraseñas es un aspecto crucial para garantizar la seguridad del usuario. Laravel, uno de los frameworks más populares en PHP, facilita este proceso. En este artículo, aprenderemos a crear una página personalizada de restablecimiento de contraseña en Laravel 11, permitiendo una mejor experiencia para tus usuarios.

Requisitos previos

Antes de comenzar, asegúrate de tener instalado Laravel 11 en tu entorno de desarrollo. También es recomendable contar con un conocimiento básico de PHP y del framework en sí. Para seguir este tutorial, necesitarás las siguientes herramientas:

  • Composer
  • Un servidor web local (como XAMPP o Laravel Valet)
  • Un editor de código (Visual Studio Code, por ejemplo)

Configuración del entorno

Lo primero que debes hacer es asegurarte de que tu proyecto esté correctamente configurado para enviar correos electrónicos. Laravel ofrece un sistema de notificaciones que se puede integrar fácilmente con servicios como Mailgun, SES de Amazon, o Gmail. Configura tu archivo .env agregando la información necesaria para la conexión con tu servicio de correo.

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=tu_usuario
MAIL_PASSWORD=tu_contraseña
MAIL_ENCRYPTION=null
[email protected]
MAIL_FROM_NAME="Tu Nombre"

Creando la lógica para restablecer la contraseña

Laravel incluye un sistema de restablecimiento de contraseñas listo para usar. Sin embargo, en este tutorial, vamos a personalizarlo. Comienza creando un controlador que manejará la solicitud de restablecimiento. Usa el comando Artisan para generar un controlador nuevo:

php artisan make:controller Auth/ForgotPasswordController

En este controlador, define los métodos para enviar el correo de restablecimiento y mostrar el formulario de restablecimiento. Por ejemplo:

use Illuminate\Support\Facades\Password;

public function sendResetLink(Request $request)
{
    $request->validate(['email' => 'required|email']);

    $status = Password::sendResetLink($request->only('email'));

    return $status === Password::RESET_LINK_SENT
                ? back()->with(['status' => __($status)])
                : back()->withErrors(['email' => __($status)]);
}

Este método validará la dirección de correo electrónico y enviará un enlace para el restablecimiento de la contraseña.

Personalizando las vistas

Ahora que tienes la lógica para manejar el restablecimiento de la contraseña, es momento de personalizar las vistas. Ve a la carpeta resources/views/auth y modifica los archivos relacionados con el restablecimiento de contraseña.

Puedes personalizar el formulario de solicitud de restablecimiento de contraseña y la página para nueva contraseña. Así podrás darle el estilo y la estructura que desees para que se alineen con el diseño de tu sitio web.

<form method="POST" action="{{ route('password.email') }}">
    @csrf
    <label for="email">Correo electrónico</label>
    <input type="email" name="email" required>
    <button type="submit">Enviar enlace de restablecimiento</button>
</form>

Probando la funcionalidad

Una vez que hayas configurado todo, es hora de probarlo. Inicia tu servidor local y navega a la página de inicio de sesión. Desde allí, deberías ver un enlace o botón que te redirija a la página de restablecimiento de contraseña. Ingresa tu correo electrónico y verifica si recibes el enlace correctamente en tu bandeja de entrada.

Conclusión

Crear una página de restablecimiento de contraseña en Laravel 11 no solo mejora la experiencia del usuario, sino que también fortalece la seguridad de tu aplicación. Siguiendo los pasos anteriores, podrás implementar esta funcionalidad de manera efectiva y personalizarla para que se ajuste a tu sitio. 

Invito a todos los interesados en el desarrollo web a seguir explorando más contenido útil en mi blog, donde encontrarás más noticias y tutoriales sobre Laravel y otros temas interesantes.

Diego Cortés
Diego Cortés
Full Stack Developer, SEO Specialist with Expertise in Laravel & Vue.js and 3D Generalist

Categorías

Page loaded in 32.22 ms