Cuando estamos consumiendo una api creada con Laravel, puede que nos aparezca el error que dice “(429) Too Many Requests“. Aquí explicaré por qué pasa y qué solución tenemos para ello.
Básicamente esto aparece porque estamos haciendo muchas peticiones en un corto periodo de tiempo; por ejemplo, hacer 100 peticiones en menos de un minuto.
Es una forma que tiene Laravel para protegernos. Ya que de esta forma bloqueamos el acceso a un usuario malicioso que haga miles de peticiones para que nuestro servidor caiga. Si pasa el límite, sólo se le responderá con el código http 429.
No hay una verdadera solución para esto, porque en realidad no es un problema. Pero hay un pequeño truco para que ya no salga este error.
Si nosotros queremos permitir que se hagan más peticiones en el período de un minuto (arriesgándonos a un ataque) simplemente tenemos que modificar el archivo App/Http/Kernel.php e ir a la línea 41 (al menos en Laravel 5.4 y 5.5).
Ahí vemos que dice 60 y luego dice 1. El 60 representa el número de peticiones que se pueden hacer en 1 minuto. Y el 1, pues el período de tiempo medido en minutos, que en este caso es uno.
Por ejemplo, si yo quiero permitir 120 peticiones por minuto, haría esto:
Para que los cambios surtan efecto simplemente tenemos que guardar el archivo y listo. No necesitamos reiniciar el servidor o cosas así.
Laravel es un poderoso framework que nos permite hacer cosas maravillosas con poco esfuerzo. Viene protegido por defecto, pero nos da la oportunidad de cambiar lo que deseemos. Esa es una gran ventaja, de poder cambiar todo a nuestra conveniencia y de acuerdo a nuestras necesidades.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.