Jak znepřístupnit obrázek nepřihlášenému uživateli?

Meedoo
Člen | 11
+
0
-

Ahoj,

v aplikaci mám uživatelské účty a každý účet si může přidávat soukromé obrázky, které se pak zobrazují v přehledu uživatele. Po kliknutí na obrázek se zobrazuje obrázek na bílé stránce (na url: ../files/název_obrazku). Přes tuto url má každý (i nepřihlášený uživatl) přístup k tomuto obrázku.

Můj dotaz tedy je, jak docílit toho, aby si ho mohl zobrazit jen přihlášený uživatel, který si tento obrázek nahrál?

Děkuji!

Kamil Valenta
Člen | 762
+
+9
-

Neodkazuj přímo na obrázek, ale na akci presenteru s parametrem, podle parametru pošleš FileResponse s daným obrázkem.

Uploadnuté obrázky udržuj mimo www adresář, aby se k nim nikdo nedostal přímo přes URL.

Andy3
Člen | 15
+
+1
-

Trochu čistčí řešení je X-Sendfile https://tn123.org/mod_xsendfile/. Nginx by měl mít něco obdobného.
Používá se u velkých souborů. Na ty obrázky asi FileResponse stačí.

P.S. Velké soubory jdou servírovat i přes PHP za pomomci flush() a ob_flush().

Editoval Andy3 (7. 6. 2019 1:08)