41 Como mostrar archivos de manera privada en el curso de LARAVEL (PHP y MySql) FullStack
Duración: 12 minDescripción
🔐 Lección 41: Mostrar Archivos de Manera Privada
Este capítulo resuelve el desafío de cómo visualizar archivos almacenados de forma privada (storage/app) dentro del propio sistema, sin exponerlos a enlaces públicos, manteniendo así la seguridad y la restricción de acceso solo a usuarios autenticados.
🛠️ Creación de la Ruta de Acceso Privado
Para que el sistema pueda servir los archivos privados (imágenes, PDFs, etc.) al usuario autenticado, es necesario crear una ruta específica que actúe como un proxy seguro:
- Definición de la Ruta: Se crea una nueva ruta GET en el archivo web.php con el nombre storage/{carpeta}/{archivo} [02:24].
- Parámetros: La ruta espera recibir dos parámetros:
- Middleware de Autenticación: Se aplica el middleware auth a esta ruta. Esta es la clave de la seguridad: solo los usuarios logueados podrán acceder a la ruta y, por lo tanto, ver el archivo [05:57].
💻 Lógica de Servido Seguro
La función asociada a esta ruta se encarga de construir la ruta interna del archivo y devolverlo como una respuesta HTTP:
- Construcción de la Ruta (Path): Dentro de la función, se utiliza Storage::path('app/') y las variables recibidas ($carpeta y $archivo) para armar la ruta física completa del archivo dentro de la carpeta privada (storage/app/{carpeta}/{archivo}) [04:14].
- Retorno del Archivo: Se usa return response()->file($path) para enviar el archivo al navegador como una respuesta [05:07]. Esto permite que el navegador interprete correctamente el contenido (ej. mostrar una imagen, incrustar un PDF, etc.).
🔗 Integración en la Vista y Prueba de Seguridad
- Uso de la Ruta Nombrada: En la vista (show.blade.php), la ruta definida (mostrar.archivos.privados) se utiliza para generar la URL de los archivos en elementos como <img src=""> o <a href=""> [08:23]. Se le pasan el carpeta_ID y el nombre_archivo como parámetros [08:58].
- Prueba de Acceso:
- El instructor demuestra que un usuario autenticado puede visualizar correctamente la imagen y acceder a la URL generada [10:17].
- Al intentar acceder a la URL del archivo desde un navegador donde no hay sesión iniciada, el sistema redirige automáticamente a la página de login debido al middleware auth, confirmando que el archivo es completamente privado y seguro [11:07].
El instructor concluye la lección indicando que el siguiente paso será refinar la experiencia del usuario para que, si un usuario no autenticado intenta acceder, reciba un mensaje más claro de "No tienes permisos" en lugar de ser simplemente redirigido al login [11:52].
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️