Недавно я добавил проверку безопасности в файл Routes.php, чтобы обеспечить доступ к этим изображениям только людям, которые должны иметь доступ к изображениям.Процесс создания PDF-файлов не может загружать изображения после добавления проверки безопасности (файлы cookie не проходят?)
Он работает как ожидается для взаимодействия с пользователем, но теперь, когда я создаю PDF-файлы, кажется, что процесс, который получает изображение, не имеет доступа, и поэтому изображение не может загружаться в PDF-формате.
Вот как образ доступен в файле Лезвия для PDF:
<img src="{{ URL::to('image/person/signature',$person->person_token) }} ">
Я к нему доступ через фасад (URL
), но по какой-то причине куки сессии не представляется должны быть переданы в этом запросе, поэтому почему он не прошел проверку безопасности.
Вот проверка безопасности:
Route::get('image/person/signature/{authToken}',function($authToken){
// This permission checking should actually probably be in the filters file
$loggedUser = Auth::user();
$person = Person::getByAuthToken($authToken);
if ($person instanceOf Person){
// PDF is getting shut out here
if($loggedUser->company_id == $person->company_id || $loggedUser->isAdmin()) {
// Processing goes here
} else{
die('You are not authorized to perform this function. Your IP address has been logged.');
}
} else {
die('You are not authorized to perform this function. Your IP address has been logged.');
}
});
Я также попытался добавить следующие условия для проверки безопасности, чтобы разрешить доступ к процессу, который не работал:
$loggedUser instanceOf PDF
$loggedUser instanceOf ServiceProvider
Auth::check()
Тот факт, что Auth::check()
не работает подозрительна и будет указывать, что информация куки/сессии не прошло ..
я как-то сомнения, изменения каких-либо настроек в DOMPDF поможет с этим, так как он просто блокируется проверкой безопасности. Вот фактический инструмент, который я использую для DOMPDF/Laravel integration. DomPDF зарегистрирован как поставщик услуг в моем приложении под фасадом PDF
.
Помните, что это, конечно, не проблема пути, потому что он работал до того, как я выполнил эту проверку безопасности. Все вопросы, связанные с этим на SO, похоже, вытекают из этого.
Как я могу позволить процессу PDF получить доступ к изображению, без дурацких обходных решений?
быстрое быстрое решение. Как насчет проверки запроса IP, используя Request :: getClientIp(), если он находится в «белом списке», разрешает доступ. –
@EzequielMoreno, что, безусловно, интересная идея, и она работает, потому что это внешний IP-сервер, который делает запрос, но, очевидно, его легко сломать, если кто-то обманывает свой IP-адрес, и нет фильтрации пакетов, выполняемой сетью , Спасибо за идею. – Marcel