Проверка авторизации хранилища Laravel

Мне нужно загрузить некоторые файлы из моего веб-приложения с laravel 5.6, и я использую локальное хранилище.

У меня есть маршруты вроде downloads/{file} с промежуточным ПО для аутентификации, и он работает правильно.

URL-адрес хранилища - это значение по умолчанию из laravel www.myweb.com/storage/files/ ...

дело в том, что если я использую маршрут www.myweb.com/downloads/foo.pdf, контроллер работает правильно, и я должен войти в систему, чтобы загрузить файл но если я получаю доступ с www.myweb.com/storage/files/foo.pdf, я могу видеть файл без входа в систему

Как я могу это решить? я должен создать другой контроллер или маршрут, чтобы справиться с этим?

должен ли я создать такой маршрут, как

Route::get('/storage/files/{file}', 'FilesController@download')->middleware('auth');
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
684
1

Ответы 1

/storage/files - это уже реальный путь к хранилищу. чтобы избежать конфликта, измените свой маршрут на другой путь

Route::get('/storage/files/{file}', 'FilesController@download')->middleware('auth');

изменить на (образец)

Route::get('/files/{file}/download', 'FilesController@download')->middleware('auth');

тогда сделайте свою логику в FilesController

Это то, что у меня уже есть. Мне нужно ограничить / storage / files / ....

Julian Mendez 08.09.2018 09:02

Другие вопросы по теме