php curl - необходимо предоставить доступ к защищенному каталогу с помощью curl - PullRequest
4 голосов
/ 09 декабря 2010

У меня есть сайт, размещенный на Apache, который содержит некоторый защищенный контент.Я хочу предоставить доступ к этому защищенному контенту пользователям, прошедшим проверку подлинности в другом приложении.Содержимое защищено с помощью htaccess и htpasswd.

Я хотел бы использовать curl для установки имени пользователя и пароля, а затем перенаправить пользователя в защищенную папку.Я могу легко это сделать, если защищенный контент представляет собой один файл, но мое решение работает только для одной страницы.Как только пользователь щелкает ссылку и пытается получить доступ к другой странице, сеанс теряется.В каталоге сотни страниц.

Вот код, который я использую:

$ch=curl_init(); 
curl_setopt($ch, CURLOPT_URL,'http://domain.com/protected_folder/'); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "username:password");  
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_exec($ch); 
curl_close($ch);

У меня две проблемы с результатами:

  1. Aполное перенаправление не выполняется, поэтому любые ссылки, по которым щелкают, ссылаются на папку, в которой находится php-файл, а не на защищенную папку.В адресной строке по-прежнему отображается путь к сценарию php.
  2. Похоже, что сеанс сразу же теряется.Любая попытка доступа к ресурсам в защищенной папке вызывается с помощью поля для входа в систему.

Любые идеи о том, как решить любую из этих двух проблем, будут высоко оценены.

1 Ответ

0 голосов
/ 09 декабря 2010

Вы женаты на использовании аутентификации htaccess?Вы получите большую гибкость, если вместо этого будете использовать аутентификацию через PHP.

http://php.net/manual/en/features.http-auth.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...