cURL и дайджест-аутентификация

Я делаю DIGEST AUTH, используя cURL, и он работает отлично. Проблема в том, что мне нужно, чтобы браузер сохранял эти дайджест-учетные данные, сделанные на странице входа, на всех других страницах без повторной отправки user:pass снова.

Пример:

Я нахожусь в login.php, я пишу своего пользователя и пароль, я делаю запрос cURL для аутентификации, серверы отвечают OK, поэтому я перенаправляюсь на index.php, который требует аутентификации, но он будет запрашивать имя пользователя и пароль опять же, это не удержало его от login.php. Как я могу это исправить?


person Guj Mil    schedule 23.08.2012    source источник
comment
Вы используете Cookie Jar ?   -  person Mihai Iorga    schedule 23.08.2012


Ответы (1)


Для этого вам нужно использовать Cookie Jar, например:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
/* more cURL options */
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt');

$output = curl_exec($ch);
curl_close($ch);
person Mihai Iorga    schedule 23.08.2012
comment
Все еще не работает, может быть, я делаю что-то не так, я добавил эти параметры cookie, и при перенаправлении я делаю проверку авторизации с помощью curl, вызывая ресурс аутентификации http дайджеста, но не отправляя учетные данные, поскольку у меня их больше нет, но будет получать 401 каждый раз - person Guj Mil; 23.08.2012
comment
Файл cookie доступен для записи? Вы видите содержимое этого файла? - person Mihai Iorga; 23.08.2012
comment
Я вообще нигде не могу найти этот файл - person Guj Mil; 23.08.2012
comment
/tmp/cookies.txt должен быть доступен для записи с помощью cURL, и вы можете изменить его путь любым удобным для вас способом, вы можете установить его как cookies.txt рядом с файлом php. - person Mihai Iorga; 23.08.2012
comment
Но где именно создается этот файл или где именно я должен его создать? предположим, что мой сайт находится в localhost/mysite, где его следует разместить? - person Guj Mil; 24.08.2012
comment
Там, где вы хотите его разместить. Лучше всего указать путь вне каталога вашего веб-сайта, например: c:\tmp\cookies.txt, я думаю, вы работаете в Windows. - person Mihai Iorga; 24.08.2012