Вопрос

Я пытаюсь настроить php-страницу, которая использует cURL для доступа к стороннему серверу для входа в систему.Прямо сейчас мой код успешно выполняет вход на сторонний сервер, но поскольку cURL не отправляет СЕАНСОВЫЕ файлы cookie пользователю, пользователь должен войти в систему самостоятельно

Как я могу заставить cURL пересылать файлы cookie клиенту?Спасибо

Это было полезно?

Решение

Посмотрите на Документация для следующих вариантов завивки:

CURLOPT_COOKIE
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR

Редактировать

После более тщательного прочтения вашего вопроса, я боюсь сказать вам, что нет НИКАКОГО способа записать файлы cookie в браузер клиента, если вы не перенаправите клиента на сайт, на котором вы пытаетесь их авторизовать.Файлы cookie браузера работают на основе модели безопасности, известной как Политика Того же Происхождения.По сути, это означает, что домены могут выдавать файлы cookie только для своих СОБСТВЕННЫХ доменов и не могут выдавать файлы cookie для других доменов.В вашем конкретном случае:

client --CONTACTS--> foo.com --cURL-LOGIN--> bar.com
bar.com --bar.com-COOKIE--> foo.com --foo.com-COOKIE--> client
client --foo.com-COOKIE--> bar.com (Will not work)

В принципе, foo.com НЕЛЬЗЯ создавать файлы cookie на клиенте для bar.com!

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

Браузер пользователя, скорее всего, не позволит вам в любом случае устанавливать файлы cookie для другого домена.

В своем PHP-коде вы можете войти и получить сессионный cookie для (например, Hotmail). Но вы не сможете передать этот сеанс пользователю (поэтому он / она также будет авторизован).

Это связано с тем, что многие браузеры и конфигурации запрещают установку сторонних файлов cookie.

Вы можете установить cookie в браузере пользователя, не перенаправляя его на сервер. что вам нужно сделать, это заставить пользователя перейти на вашу php-страницу с кодом curl. Затем вы можете взять его данные и отправить эти данные на сервер. Но не позволяйте серверу перенаправить вас. Установите для параметра CURLOPT_FOLLOWLOCATION значение false и для CURLOPT_HEADER значение true. Теперь возьмите заголовок и извлеките cookie и заголовки местоположения, а затем передайте их как заголовки для браузера клиента, такие как заголовок (" расположение: ...) и заголовок (" Set-Cookie: ....). Вы также можете отправить другие заголовки, извлекая их тоже. следующая [post] html-страница не получает файлы cookie через libcurl имеет похожую ситуацию

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top