对于我的应用,用户可以通过api身份验证('middleware' => ['auth:api']
中的api.php
)进行登录,并且有些图片可以为已登录的用户显示。
但是,当我在'middleware' => ['auth:api']
中使用web.php
时,系统会识别用户未被记录。
如何保护图像并向通过ajax呼叫记录的用户显示?谢谢!
答案 0 :(得分:0)
配置apache以禁止直接访问。
Alias /filepath "/data/filepath"
<Directory /data/filepath>
Order allow,deny
Deny from all
</Directory>
在写入文件之前检查用户。
$local_file = 'local file path';
$download_file = 'download file name';
$download_rate = 20.5;
if($isAuthorized)
{
if(file_exists($local_file) && is_file($local_file)) {
header('Cache-control: private');
header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($local_file));
header('Content-Disposition: filename='.$download_file);
flush();
$file = fopen($local_file, "r");
while (!feof($file)) {
print fread($file, round($download_rate * 1024));
flush();
ob_flush();
sleep(1);
}
fclose($file);
}
}