我在Web应用程序中实现了一个部分,如果用户未通过身份验证,则该部分将无法下载资源(rapport
)。 web.php
文件中的路由如下所示:
//DOWNLOAD RAPPORT
Route::get('telecharger/{id}', 'downloadRapport@download')->middleware('auth');
在控制器中:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Rapport;
use Illuminate\Support\Facades\Storage;
class downloadRapport extends Controller
{
public function __construct(){
$this->middleware('auth');
}
public function download($id){
$rapport = Rapport::findOrFail($id);
return response()->download(storage_path('app/'.$rapport->path) , $rapport->fichierRapport);
}
}
我以为它很完美,直到我最近发现了一些东西。
为了下载rapport
,必须按照逻辑提示对用户进行身份验证。这意味着一旦不再登录,他就必须重新输入凭据才能下载rapport
。
但是,我发现,当用户输入自己的凭据以下载特定ID的rapport
时,即使他注销了,也可以下载该特定关系。对于其他关系,他必须先登录。等等。会话中可能有一些内容(只是一个假设)。但是,特别是当身份验证中间件在其他中间件上工作正常时,为什么特别要在这条路线上呢?欢迎您的任何帮助