- #laravel
- #seguridad
Confirmación de contraseña para acciones sensibles en laravel
Escrito por Jhon Achata el 6 de agosto de 2023
En ocasiones necesitamos proteger ciertas acciones o rutas de nuestra aplicación, donde para poder acceder a la información o realizar una acción se requiere de la contraseña del usuario. En esta ocasión veremos como hacerlo en laravel.
Para poder lograr esta funcionalidad, podemos usar el middleware password.confirm
, que esta disponible desde la versión 6.x
del framework. Puedes encontrar la referencia al middleware en el archivo app/Http/Kernel.php
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
En este caso, tenemos como ejemplo una página (Página Secreta) que contiene información sensible.
Ahora, unicamente necesitamos agregar el middleware a cualquier ruta que necesite la confirmación con contraseña del usuario para continuar.
Route::view('/secret', 'secret')->middleware('password.confirm')->name('secret');
Listo, ya tenemos una ruta protegida que para visualizarla requerimos que el usuario introduzca su contraseña. Si intentamos acceder, vamos a ver un formulario para ingresar la contraseña.
Si ingresamos la contraseña correcta, podremos acceder al contenido.
Después de ingresar la contraseña, no se nos volverá a pedir hasta dentro de 3 horas, si queremos que este tiempo sea menor o mayor, podemos cambiarlo desde el archivo config/auth.php
'password_timeout' => 10800, // Tiempo en segundos
En esta ocasión vimos como proteger el contenido de una ruta, pero también podemos usarlo para acciones sensibles e importante, como:
- Cerrar la sesión en otros dispositivos.
- Cambiar la contraseña.
- Eliminar la cuenta.
- Borrar recursos
- Etc.
Puedes encontrar mas información en la documentación.