Enviar emails usando colas (queues) en Laravel

Laravel nos proveé una herramienta que son las colas o queues que nos permiten ejecutar procesos, que hacen que nuestra aplicación se ralentice, en background. Es decir, nos permite ponerlos en una cola de procesos y que se vayan ejecutando en background según van entrando a la cola, uno a uno. Así, al ejecutarse en background, se evita que nuestra aplicación se vea afectada, porque los procesos se ejecutarán por debajo, mientras nuestra aplicación continua con su ejecución.

Continuar leyendo «Enviar emails usando colas (queues) en Laravel»

Sistema de autenticación sin contraseña en Laravel

Hoy vamos a ver como hacer un sistema de autenticación sin contraseña en Laravel. Hace un tiempo me pregunté cómo se haría esto en Laravel y encontré un post en Medium dónde lo explicaba de una manera muy sencilla (post en el que me he basado para hacer éste).

El sistema de autenticación sin contraseña funciona de la siguiente manera: simplemente tenemos que indicar nuestro email cuando nos registramos, se nos enviará un correo con un enlace con fecha de caducidad (si caduca, quedará inválido) y cuando entremos en este enlace, nos logueará automáticamente, sin contraseñas.

Continuar leyendo «Sistema de autenticación sin contraseña en Laravel»

Laravel Impersonate: loguearse como cualquier usuario

Cuando estamos desarrollando, hay veces que tenemos que estar iniciando y cerrando sesión para cambiar de usuario porque estamos desarrollando algo que, por ejemplo, ciertos usuarios lo tienen restringido y tenemos que comprobarlo. Está claro que en esos cambios de usuario, se pierde bastante tiempo y es bastante engorroso. También, hay veces en producción, que hay bugs que a nuestro usuario no le pasa, pero a otro usuario sí, pero no nos podemos loguear como ese usuario porque no tenemos su contraseña.

Para resolver estos casos y otros similares, existe un paquete en Laravel llamado Laravel Impersonate que permite exactamente eso, loguarte como cualquier usuario de tu app sin necesidad de saber la contraseña. En esta entrada, vamos a crear un ejemplo sencillo para ver el funcionamiento del paquete.

Continuar leyendo «Laravel Impersonate: loguearse como cualquier usuario»

Integrar Google reCAPTCHA en Laravel

Hay veces que tenemos que poner una protección extra en los formularios de nuestras webs, porque recibimos mucho spam de robots. Sin ir más lejos, yo tuve que poner esta protección en este blog, tanto en el formulario de contacto como en el de enviar comentarios, porque recibía bastante spam. Google reCAPTCHA es el servicio que más se utiliza para prevenir el envío de spam de robots, seguramente hayas visto el típico recuadro que te hace seleccionar unas imágenes relacionadas con una palabra, eso es Google reCAPTCHA. En esta entrada, vamos a ver como integrar varias versiones de reCAPTCHA con Laravel.

Continuar leyendo «Integrar Google reCAPTCHA en Laravel»

Transacciones con Laravel

En ocasiones, tenemos que ejecutar una o varias consultas a la vez y tenemos que asegurarnos que esas consultas se ejecutan correctamente. Porque, si son varias, puede ser que una dependa de otra. Para asegurarnos que todas las consultas se han ejecutado correctamente y que no ha habido ningún error, en MySQL existen las transacciones. Lo que hacen las transacciones es asegurarte que si las consultas se han ejecutado sin ningún error, se hagan los cambios en base de datos y, si ha habido algún error, volver al estado inicial antes de haber hecho las consultas, es decir, no guarda nada en la base de datos para que no haya datos sueltos.

Continuar leyendo «Transacciones con Laravel»

Comentarios anidados con Laravel

En esta entrada, vamos a crear un sistema de comentarios anidados desde 0 con Laravel. ¿Y qué es un sistema de comentarios anidados? Pues, básicamente, es un sistema de comentarios en el que los comentarios pueden tener comentarios hijos, es decir, respuestas. Podríamos decir, que será algo parecido al sistema que tiene WordPress y que puedes ver en este mismo blog en la sección de comentarios (por ejemplo, aquí).

Continuar leyendo «Comentarios anidados con Laravel»