繁体   English   中英

PHP和cURL cookie

[英]PHP and cURL cookies

我正在尝试建立一个使用cURL击中第三方服务器以登录他们的php页面。现在我的代码确实成功登录了第三方服务器,但是由于cURL没有将SESSION cookie发送给用户,因此用户必须自己登录

如何获取cURL将cookie转发到客户端。 谢谢

请查看文档 ,了解以下cURL选项:

CURLOPT_COOKIE
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR

编辑

在更彻底地阅读了您的问题之后,除非您将客户端重定向到尝试对其进行授权的站点,否则恐怕无法告诉您将cookie写入客户端浏览器的方法。 浏览器cookie在称为“ 相同来源策略”的安全模型上运行。 这基本上意味着域只能为自己的OWN域发布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不能在bar.com的客户端上创建cookie!

无论如何,用户的浏览器很可能不允许您为另一个域设置cookie。

您可以使用PHP代码登录并获取(例如)Hotmail的会话cookie。 但是您将无法将该会话传递给用户(因此他/她也将登录)。

这是因为许多浏览器和配置都拒绝设置第三方Cookie。

您可以在用户的​​浏览器中设置cookie,而无需将其重定向到服务器。 您需要做的是让用户使用curl代码访问您的php页面。 那么您可以获取他的帖子数据,并将其发送到服务器。 但是不要让服务器重新引导您。 将选项CURLOPT_FOLLOWLOCATION设置为false并将CURLOPT_HEADER设置为true现在抓取标题并提取cookie和位置标题,然后将它们作为标题传递给客户端浏览器,例如header(“ Location:...)and header(” Set-Cookie :....)。 您也可以通过提取其他标头来发送它们。 以下[post] html页面未通过libcurl获取cookie的情况类似

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM