Necesito permitir que los usuarios carguen archivos con datos confidenciales a un servidor, luego invitar a otros usuarios autenticados a acceder a archivos específicos.
Esta es mi solución propuesta:
Cada usuario tendrá su propia carpeta en la que carga los archivos, y la carpeta principal tendrá un .htaccess con deny all
para bloquear el acceso directo. (Esto ya funciona bien).
Luego, un usuario invitado obtendrá una ID de invitación SHA1 generada y la url será algo así como download/[sha1]/file
y luego puedo usar mi controlador para verificar si esta invitación existe en la base de datos para este usuario autenticado. Si lo hace, obtengo el archivo y, según la extensión del archivo, le doy el encabezado apropiado para la descarga del archivo.
ej:
localhost/[whatever]/download/[some_hash]/test.txt
invitation_table
invite_id - unique ID
invite_token - sha1 which will be generated by his unique email concatenated with other data
invite_invited - logged user invite
invite_user - user who invited the user
Según el hash, pregunto en la base de datos y obtengo los datos de invite_user y luego sé en qué directorio tengo que obtener el archivo porque puede haber varios archivos en el servidor con el mismo nombre en diferentes directorios.
¿Es este un buen enfoque?