代码之家  ›  专栏  ›  技术社区  ›  Señor Reginold Francis

PHP和cURL Cookie

  •  1
  • Señor Reginold Francis  · 技术社区  · 16 年前

    我正在尝试设置一个php页面,该页面使用cURL访问第三方服务器进行登录。现在我的代码确实成功登录了第三方服务,但由于cURL没有向用户发送SESSION Cookie,用户必须自己登录

    谢谢

    3 回复  |  直到 16 年前
        1
  •  4
  •   davetron5000    16 年前

    看看 documentation 对于以下cURL选项:

    CURLOPT_COOKIE
    CURLOPT_COOKIEFILE
    CURLOPT_COOKIEJAR
    

    在更彻底地阅读了您的问题后,我恐怕要告诉您,除非您将客户端重定向到您试图授权它们的网站,否则无法将Cookie写入客户端浏览器。浏览器Cookie的安全模型称为 Same Origin Policy 。这基本上意味着域只能为其自己的域发布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!

        2
  •  1
  •   Joel L    16 年前

    用户的浏览器很可能不允许您为其他域设置Cookie。

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

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

        3
  •  0
  •   Community Mohan Dere    9 年前

    您可以在用户的浏览器中设置cookie,而无需将其重定向到服务器。您需要做的是让用户点击其中包含curl代码的php页面。然后,您可以获取他的帖子数据并将此数据发送到服务器。但不要让服务器重新引导你。 将选项设置为 CURLOPT_FOLLOWLOCATION 为false和set CURLOPT_HEADER 千真万确 现在抓取标头并提取cookie和位置标头,然后将它们作为 html page not getting cookies through libcurl 有类似的情况

    推荐文章