【问题标题】:When Session Cookies Expire Using cURL当会话 Cookie 使用 cURL 过期时
【发布时间】:2015-03-31 01:12:37
【问题描述】:

通常,使用浏览器时,会话 cookie 会在浏览器窗口关闭时过期。

但是当使用 (php) cURL(并设置COOKIE_FILECOOKIE_JAR 选项)时,它们可以存活多久?

【问题讨论】:

    标签: php curl cookies session-cookies


    【解决方案1】:

    根据mozilla.org

    会话 cookie [...] 在客户端关闭时被删除,因为它没有指定 Expires 或 Max-Age 指令。但是,网络浏览器可能会使用会话恢复,这会使大多数会话 cookie 永久化,就好像浏览器从未关闭过一样。

    根据documentation of curl_setopt函数:

    默认情况下,libcurl 始终存储和加载所有 cookie,无论它们是否是会话 cookie。 会话 cookie 是没有到期日期的 cookie,它们在此“会话”中是活动的和存在的“ 只要。

    如果您将 cookie 保存在指定的文件中

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://stackoverflow.com');
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
    $output = curl_exec($ch);
    curl_close($ch);
    

    然后,从客户端的角度来看,只要使用正确的 cookie 设置了 CURLOPT_COOKIEJAR,会话就会处于活动状态。这是您的脚本的选择。

    【讨论】:

    • 我认为会话 cookie 在 curl_close($ch); 上过期
    • @Entretoize 但curl_setopt function 的文档与您的想法不同。
    猜你喜欢
    • 1970-01-01
    • 2015-03-20
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多