I followed this article: Velo Tutorial: Building Your Own Members Area | Help Center | Wix.com. There is also a YouTube tutorial here: 2017 Create Member Profile Log In Page - Custom Private Client Member Dashboard - Wix Code - YouTube. This gives each user a separate dashboard that only they can access.
Once users were logged in, I wanted to give these users access to certain files for download, but I didn’t want the users to be able to see other users files. I did this by providing a field in the database identifying the URL to which they were authorized and on which I displayed the files that they could download. The code above kept users out of pages to which they weren’t authorized, and I made the pages member only; so non-members would just get sent to a login page. The link to that page could be displayed as a button on their dynamic dashboard or embedded in their dashboard with an iframe; the iframe (#html1 below) can obtain the url (called theirUrl below) from the database with this code:
$w.onReady( () => {
$w('#dynamicDataset').onReady( () => {
const itemUrl = $w('#dynamicDataset').getCurrentItem().theirUrl;
$w('#html1').src = itemUrl;
console.log(itemUrl);
} );
} );
No users would know who the other users were and unless they were authorized in the database to reach the download page, they can’t. Your design sounds like an iframe, wouldn’t work, but presumably you could protect each of the pages as I did above and have your images connect to the protected pages. I’m thinking you would have to have multiple URL fields in your database. Your design sounds more dynamic than mine, but I hope that helps.