Protección de Rutas en Laravel con Middleware de Autenticación

Clase 6 de 23Curso de Desarrollo en Laravel con Test Driven Development

Resumen

¿Cómo automatizar pruebas de ruta en un proyecto web?

Descubrir e implementar técnicas eficaces para proteger rutas puede ser un desafío, pero es una habilidad esencial para cualquier desarrollador web. Automatizar el testing en rutas es más que escribir un script; es garantizar que los usuarios accedan correctamente a las secciones permitidas de un sitio web mientras se protegen las áreas restringidas. En este artículo, te guiaré a través del proceso para configurar pruebas de rutas en un proyecto, especialmente cuando un usuario no ha iniciado sesión.

¿Cómo se estructura un test para una función protegida?

  1. Apertura y configuración inicial:

    • Abre tu navegador y coloca el enlace que se va a probar.
    • Accede a funcionalidades específicas del proyecto, como la página de inicio de sesión si no has iniciado sesión.
  2. Creación del controlador y test inicial:

    • Usa el comando phpArtisanMakeTest para crear un nuevo test funcional.
    • Define la estructura del controlador en el que quieres verificar la respuesta esperada.
  3. Ruta y controlador del repositorio:

    • Organiza tus carpetas de trabajo. En este caso, dentro de http, ubica controllers, y dentro de controllers define el nuevo archivo de test.
    • Confirma que estás trabajando dentro de la estructura correcta, para asegurarte de que todas las rutas se prueben efectivamente.

¿Qué implican las configuraciones de un CRUD?

Al trabajar con sistemas CRUD (Crear, Leer, Actualizar, Eliminar), se deben detallar y proteger siete rutas esenciales. Siguiendo estas pautas puedes lograr un entorno de pruebas eficaz:

  • Asegura que al visitar la raíz o index siempre se redirija al login en usuarios no autenticados.
  • Verifica respuestas 404: Estas se generan cuando la ruta no existe, lo cual es un indicativo de que las rutas aún no están configuradas.
  • Implementa rutas de recursos y asigna middleware de autenticación.

¿Cómo proteger y probar específicamente rutas CRUD?

  1. Creación y verificación:

    • Con el comando phpArtisan make:controller, crea un controlador siguiendo la nomenclatura adecuada.
    • Asegura que las rutas apuntan correctamente al controlador, por ejemplo, Controllers::class.
  2. Aplicación del middleware de autenticación:

    • Asigna el middleware a las siete rutas generadas automáticamente para asegurar que todas queden protegidas.
    • Siempre utiliza la configuración adecuada del middleware para proteger de manera efectiva las rutas definidas.
  3. Centrarse en el detalle de cada ruta:

    • Mostrar (Index): Testea para verificar redirecciones a login cuando el usuario no está autenticado.
    • Editar y actualizar: Define rutas put y verifica si pueden ser accedidas sin autenticación.
    • Eliminar y crear: Configura pruebas post para asegurar que la funcionalidad también esté protegida.
    • Visualizar form de crear: Asegura que las páginas de formulario, como las de creación, están protegidas adecuadamente.

¿Cómo usar herramientas de comandos para confirmar la protección de rutas?

  • Utiliza phpArtisanRoute2.list: Esto te permite visualizar claramente todas las rutas generadas en el terminal.
  • Prueba cada ruta individualmente para confirmar la redirección adecuada o el acceso permitido, asegurando que la petición cae dentro del entorno de seguridad correcto.

¡Ánimo! Comprender y automatizar pruebas de rutas no solo garantiza la seguridad, también aumenta la usabilidad y la confianza en tu aplicación. Mantén estos pasos en mente y sigue explorando técnicas de testing para perfeccionar tus proyectos.