Проверка подлинности HTTP с использованием проверки подлинности PHP

Я создаю зону для своего сайта, и у меня она уже работает. Я аутентифицирую членов, используя mysql и php, и это работает очень хорошо.

Но теперь возникают проблемы, я хотел бы предложить участникам возможность загружать файлы в системы, и эти файлы должны быть доступны ТОЛЬКО для входа в систему.

Я знаю, что могу хранить эти файлы в базе данных или даже в файловой системе и обслуживать их через php, но это будет очень тяжело для сервера, когда пользователи загружают большие файлы. Эти файлы могут быть даже 20 МБ или даже больше.

Я хочу, чтобы apache обслуживал файлы, но просто нужно найти способ автоматически выполнить проверку подлинности HTTP, поэтому пользователям не нужно будет входить в систему дважды. Я предполагаю, что это нормально, чтобы сделать эту аутентификацию http за одним именем пользователя и паролем, что-то вроде того, когда пользователь входит в аутентификацию php и mysql, прозрачно в то же время javascript и т. Д. Также будет выполнять эту проверку подлинности HTTP, каждый член будет выполнять http-аутентификация с теми же учетными данными. Конечно, я бы не хотел хранить эти учетные данные http-авторизации в файле javascript, но что-то вроде ajax, вроде решения, могло бы сделать трюк. Я просто не знаю, как это сделать.

Solutions Collecting From Web of "Проверка подлинности HTTP с использованием проверки подлинности PHP"

Кажется, что вы запутываете аутентификацию (где вы предоставляете какой-то способ входа в систему) с проверкой подлинности HTTP (где вы специально используете протокол HTTP для аутентификации, а браузер показывает всплывающее окно для пользователя).

Вероятно, вам нужен первый, чтобы вы могли создать страницу входа в систему. В этом случае вам нужно будет использовать PHP или некоторые скрипты langauge, чтобы проверить, что пользователь вошел в систему. Fpassthru или readfile могут быть хорошими решениями для некоторых веб-сайтов; они быстро и оптимизированы для такого рода работ.

Если вы действительно хотите работать с файлами в веб-браузере, а не в PHP, одним из решений может быть создание уникальных, недолговечных имен файлов. Вы можете, например, создать жесткие ссылки на файл в PHP, используя ссылку, а затем перенаправить пользователя на временное имя файла. Храните жесткие ссылки в базе данных и удалите их через некоторое время.

Ознакомьтесь с использованием PHP / Apache, чтобы ограничить доступ к статическим файлам (html, css, img и т . Д.) . Я думаю, что подход, сделанный там, очень похож на вашу проблему.