Muchas veces recurrimos a un Captcha de terceros para darle mas seguridad a nuestro formulario de inicio de sesión pero tal vez no sepas que Laravel tiene incluida una lógica para tener control de la cantidad de ingresos fallidos por un usuario malicioso y bloquearlo si llega al limite que nosotros deseemos.
Y no solo eso, también podemos configurar la cuanto tiempo el usuario quedará bloqueado para intentar iniciar sesión.
Cantidad de ingresos fallidos antes de bloquear
Laravel nos da la posibilidad de establecer la cantidad de intentos fallidos de iniciar sesión antes de bloquear al usuario. Para esto, debemos sobrescribir la propiedad $maxAttempts
en el controlador que viene por defecto en Laravel.
Estableciendo el tiempo de bloqueo
También, Laravel nos da la posibilidad de establecer el tiempo en minutos que queremos que el usuario malicioso no pueda intentar ingresar a la aplicación. Para esto, debe sobrescribir la propiedad $decayMinutes
en el controlador que maneja el inicio de sesión.
Nota importante
Se puede utilizar un controlador propio para el inicio de sesión reemplazando el controlador AuthController
que viene por defecto en Laravel. Pero si quieren utilizar la función de bloquear a usuarios por cantidad de ingresos fallidos, se debe implementar el trait AuthenticatesUsers
en tu controlador.
Versión disponible
La posibilidad de bloquear un usuario por intentos fallidos y establecer el tiempo que estará bloqueado son características que están disponibles desde Laravel 5.6. Así que, si continuas utilizando versiones anteriores, es una gran característica para pensar en ponerse al día con las versiones de Laravel.
Conclusión
Hay muchas funcionalidades en AuthenticatesUsers
para sobrescribir que nos brinda distintas funcionalidades muy interesantes y útiles. Algunas de ellas las he detallado en el artículo de Guardar Información del Usuario. Te animo a que las descubras y las compartas con nosotros en los comentarios de este artículo. Espero que te haya gustado este tip y lo compartas con tus amigos, nos vemos en el próximo Laravel Tip. 😁
Existe alguna forma de hacer lo mismo con versiones anteriores de laravel? (5.0 al 5.4)
Desconozco. Pero seguramente debe haber paquetes que hacen lo mismo para esas versiones. Saludos.
Pero, el tiempo de validación, cómo lo parametrizo, es decir, que se equivoque en el día 3 veces, nada más, en el día. Porque laravel por defecto creo que tiene que sea dentro de 1 minuto los intentos fallidos.
hola es mi primera vez que utilizo javascript quisiera saber cuando iniciamos a utlizar javascript en el archivo .js siempre empiesa function a si como inicia y termina es que a mi me aparece en blanco al cargar el navegador sera que la sintaxis de javascript esta mal ? por favor necesito ayuda por favor necesito respuesta pronta es ES URGENTE gracias
Hola como estas? La verdad que no entiendo exactamente tu pregunta. Tal vez sería mejor que la hagas en el grupo de facebook «Hablemos de Laravel» donde soy el administrador. Y así podrás subir imagenes del código que dices y te responderán más rapido.